LOWIS Configuration for Well Testing
Well testing in LOWIS is designed to track test values coming from a separator and, if configured appropriately, to automatically rotate testing between a set of wells. The well tests stored in LOWIS can be noted as a good test by a LOWIS user, or it can be configured to automatically accept a well test as good if its oil is within a certain amount compared to the previous test. In order to acquire test values, and maintain them, a separator is associated with a Remote Terminal Unit (RTU). The various discretes and meters configured on the RTU are used to track the accumulated oil, water, and gas (OWG) values and to turn header valves on or off.
The first thing required in Lowis is to create a generic RTU. To do this, one simply needs to open a LOWIS client and click on Start > Configuration > Group RTU Configuration.
Users can expect the screen to be initially empty until they add an RTU. A user can add an RTU using the green plus button (). Clicking this button will bring up a new popup window where the RTU information can be entered. The requested information will change based upon the Communication Port it is configured to.
Once the RTU is created, it can be treated like any other RTU in LOWIS. However, generic RTUs do not have a preconfigured list of registers. Any information that is desired to be pulled during a scan must be manually added in the form of meters, discretes, and analogs. Like other RTUs in LOWIS, the points configured can contain whatever type of value you want it to represent out in the field. If you want a discrete that is checking a tank level, or a meter to accumulate the amount of water that passed through in a 24 hour period, then a RTU simply needs to be configured to represent that information. It is important that the sensor sending data to the register in the field matches the user’s configuration in LOWIS, because LOWIS will assume that whatever was configured in the application reflects what is out in the field. For example, if a sensor measuring temperature is plugged into register number 13 and a user configures an analog with a register of 13, but names it Casing Pressure, then the value that shows up as “Casing Pressure” in LOWIS will actually be the temperature values.
There are a few sensor points that are very important for a separator to function in Lowis. The first are three meters that are used to track the amount of oil, water, and gas in the separator. For generic RTUs, meters must be added from the RTU Meter Configuration child tab off the Group RTU Configuration grid.
From here, users can view all meters associated with the selected RTU. There typically are no meters added by default, so the grid should be blank. To add a new meter click the green plus button (). This will open a popup window which allows the user to specify important information about the meter.
Meters will need to be created for oil, water, and gas in order to track these values. These will be accumulators, in that they will be used to accumulate the values received from the controllers until it is reset. The register number will depend upon how the hardware is configured. Typically the function code and format specified here will be acceptable, but that too is dependent on the hardware configuration.
Once the meters are created, there is additional information that may need to be added (example: the OPC tag if it is an OPC COM port). This can be done using the quick edit option on this grid.
Once the RTU and meters have been added the separator is now ready for configuration. To configure a separator in LOWIS, open the Separator Configuration grid.
The first step is to add a separator by clicking the green button (). The separator ID needs to be an abbreviated separator name, while the description is the full separator name. The type is important, and the different options will be discussed later in this document. The RTU selected is the RTU that is to be associated with the separator.
The second step is to link the separator and meters by clicking the link button (). This will open a new window, where the user selects an RTU and then links the separator with a meters configured on the RTU.
It is important to ensure that when the RTU is scanned, the OWG values associated with the LOWIS separator will also be updated.
A header will automatically be created when a separator is added in LOWIS. In order to add additional headers, or modify an existing one, you must go to the Header Configuration child tab. If multiple headers exist for a single separator in the field, then the headers needs to be specified as parallel when added to this grid. The headers name is important because positions (covered shortly after this) associated with it have names that begin with that header name. When adding a header, it can be associated with an RTU that is not the separator’s RTU.
Positions are crucial to the effectiveness of the well test process. A position is associated with a header and an RTU. The person configuring the position must provide the correct function code and address to scan in order to receive the valve’s status, as well the correct function code and address for sending the command to turn the valve on and off.
Header and position configuration grids are both child tabs of the Separator Configuration grid.
The RTU, Meter, Separator, Header, or Position can all be deleted by using the red “x” button () on their respective configuration grids.
In order to be effective, the newly added positions must be associated with a well. This is done in the Well Testing Configuration view, a child tab of the Well Group Configuration grid. The well selected in the grid can be set to a particular separator and a particular position on that separator. Additionally, there are some rules the well can be required to comply with before it will start a test, like ensuring the well is In Service.
The final portion of configuration must be done in the Group Separator Status grid. This grid is located under the Status sub-menu. This grid is covered more fully in a different portion of this document, but the focus now is the WellTest Spread Sheet child tab.
In this tab, there are many well testing configuration options that can be modified for a particular well. Options of particular interest are:
The frequency of tests (every #days)
# of hours to purge
Do you want to automatically evaluate the well?
The maximum # of overdue days
# of pre-purge hours
Do you demand the well be tested?
Minimum test hours
Is the well active for testing?
Maximum test hours
The separator has now been successfully configured! When the RTU is scanned it will update the separator’s status and its individual positions, which will let LOWIS know if the well test has been completed or if it needs to remain in a testing. Once the test has been completed, LOWIS will save the well test information based on its accumulators and tell the separator to begin purging in preparation for the test well.
Viewing Well Test Information
Historical well test information is best viewed from the Test Results grid. This grid contains majority of information collected during a well test. This information is displayed on a well basis, based upon the well selected in the navigator. The date of the well test and the OWG values are available from this screen, in addition to other material. Users can also manually add a well test to the selected well or modify the information on an existing well test. They can also transfer a single well test, or multiple well tests, from one well to another if that needs to be done. A well test, or multiple well tests, can be deleted from this screen. Finally, users can export well tests to, or import them from, a csv file.
An important field is the SPT (Standard Production Test) code. The SPT code is used to denote if a well test is valid or not. An invalid well test would be one that is inconsistent with the expected oil output by a large margin. The different values indicate different things.
- -1 = not yet been evaluated
- 0 = valid
- 9 = invalid
Wells in LOWIS can be configured to automatically evaluate well tests when they come into the system. In order for this to take effect, a well must be configured in the Well Test Spread Sheet child tab (available from the Group Separator Status grid). On this grid, the user must set the Auto Evaluate column to 1. If the focus is only on water, or oil, then the Auto Evaluate Oil or Auto Evaluate Water columns can be set to one. The Initial Test Date acts as the date for the first test date and is crucial for evaluation. Likewise, the Initial Water, Initial Oil, Oil Decline, and Water Decline values are all necessary to estimate what the test values should be by the time a test occurs. It then allows for a percentage increase or decrease.
Another grid that may be desirable to view well test information on is the Test Evaluation/Results Grid. This contains information about the most recent well test for all wells, with the test results grid underneath.
Viewing the Separator\Well Test’s Status
The best place to view information about the separator’s status, and the status of the current well test, is the Group Separator Status grid. On this grid, a user can view the separator’s state: whether it is Testing, Purging, Suspended, etc. They can see how long the separator has been in that state and how much longer it will remain in that state, where appropriate. It displays the current test value up to that point and the last time it was scanned. It also displays which well is currently in test and from what position. If there are any alarm messages, they will be visible here.
From here, a user can scan the separator, stop all well tests on a particular well test, begin the well tests again, or simply tell the separator to move on to the next well. Where appropriate, a user can download the well test sequence from the controller, clear alarms, or begin a leak check. Additionally, there are a large number of child grids accessible from this screen that are also very useful. While the Well Test Spread Sheet grid has already been covered above, the WellTest Well Status grid shows when the last good well test was collected for all wells on that separator. Users can view grids containing the point’s statuses, view all separator reports, see separator related comments, explorer the RTU directly via RTU Read\Write, and see the separator with its header(s) and position(s) in a graphical format.
Well Test Status:
LOWIS Admin Configuration Options:
- AUTOEVALSHOWZERO – if this option in WELLTESTPROC is not Y, then a well test whose well is configured to not auto evaluate (ACAUTO = 0 or (ACAUTOO = 0 and ACAUTOW = 0)) will print that fact a message to the AARESULTDESC column saved on the welltest.
- DONOTALLOWZEROOIL – if this option in WELLTESTPROC is 1, then a well test with an oil value of zero will automatically evaluate to bad
- MANUALWELLTESTSHIP – if this option in WELLTESTDBSERVER is 1, then the NEEDSHIP column on the well test will be set to 1
- DOAUTOEVALFORMANUAL – if this option in GENERAL is N, then manual well tests will not be automatically evaluated.
- SENDATPCOMMAND– if this option in SITEOPTIONS is N and the SEPSATP column is set to one on the separator, then it calls a function that is supposed to set all valves to production.
- SETSPT99ONDEL – if this option in SITEOPTIONS is 1, then well tests will be deleted if they are set to 99. (Used only by certain customers)
- WTPROCTIME – this option in WELLTESTPROC is number of hours as a time delay before processing a separator when the RU is scanned.
- WTPROCALARM – if this option in WELLTESTPROC is not 0 or default, then an RTU will alarm when the separator changes
- Valve Method1
This method has an individual address for each valve. The same address is used to move the valve to test or to production. An argument is sent to the RTU/PLC that tells the direction of the movement. Each valve has a discrete point sensor that tells if the valve is in test or not. This method supports parallel well testing.
- Valve Method 2
This method services rotary valves. Each valve has an individual address, including the "blank valve". The blank valve is a special valve which has no well connected. When this valve is moved to the test position, then all well valves are in production. This is the way a production reset is done. The same address is used to move the valve to test or to production. An argument is sent to the RTU/PLC that tells the direction of the movement. Each valve has a discrete point sensor that tells if the valve is in test or not. This method does not support parallel well testing.
- Valve Method 3
This method has an individual address for each valve but it has a production reset command. The production reset address is like is a special valve address. Each valve has a discrete point sensor that tells if the valve is in test or not. This method supports parallel well testing. The production reset address is given by the LEAK position on the header or by the one that has the PRODRSET bit set.
- Valve Method 4
This method addresses 16 valves at a time. To move valves to test a 16 bit word is output to an address. For each 1 bit, the corresponding valve is moved to test. A production reset is done by outputing all 1s to another address. This method supports parallel well testing. The production reset address is given by the LEAK position on the header.
- Valve Method 5
This method has an individual address for each valve. The same address is used to move the valve to test or to production. An argument is sent to the RTU/PLC that tells the direction of the movement. Each valve has up to 3 discrete point sensors that tells the status of the valve. These sensor addresses are sequential, the smallest is the production statue (1 = in production), the next highest is the test status (1 = in test), and the 3rd is the remote/local status. In order to test, the valve must be "in remote", "not in production", and "in test". This method supports parallel well testing. Code has been embedded that assumes that the controller type is ASC574.
- Valve Method 6
This method addresses individual valves. To move a valve to test a function code (generally B6) and a well number is output. To reset one or all valves back to production, a function code (usually B5) and a relay number is output. This method supports parallel well testing. The production reset address is given by the LEAK position on the header.
- Valve 7
This method addresses individual valves. To move a valve to test a function code (generally 67) and a relay number is output. To reset one or all valves back to production, a function code (usually 69) is output. This method supports parallel well testing. The production reset address is given by the LEAK position on the header
Blank is a true or false value for a position that is only used when the separator is using valve method two. This determines what wells go into test and which go into production.