Claim of Priority under 35 U.S.C. § 119
[0001] This application claims priority to
U.S. Provisional Application Number 62/650,724 titled "NETWORK MONITORING AND CONTROL OF FLUID HANDLING APPARATUS," filed March
30, 2018, which is assigned to the assignee hereof, and incorporated herein by reference
in its entirety.
INTRODUCTION
[0002] Aspects of the present disclosure generally relate to positive displacement pumps
and systems for monitoring and controlling such pumps.
BACKGROUND
[0003] Fluid handling apparatuses such as positive displacement pumps are used in various
environments to supply fluids at set rates. Positive displacement pumps are often
used due to their precision and durability. For example, positive displacement pumps
may operate unattended for continuous laboratory or manufacturing processes.
[0004] Although positive displacement pumps can operate for long periods of time without
malfunctioning, errors can occur. Although current pumps may monitor operation and
report detected issues, control is conventionally performed locally.
[0005] Accordingly, there remains an unmet need in the related art for positive displacement
pumps and systems and methods of control thereof that allow secure remote operation.
SUMMARY
[0006] The following presents a simplified summary of one or more aspects of the present
disclosure in order to provide a basic understanding of such aspects. This summary
is not an extensive overview of all contemplated aspects, and is intended to neither
identify key or critical elements of all aspects, nor delineate the scope of any or
all aspects. Its purpose is to present some concepts of one or more aspects in a simplified
form as a prelude to the more detailed description that is presented later.
[0007] In an aspect, the present disclosure provides for positive displacement pumps and
methods and systems for remotely controlling such positive displacement pumps via
a network. An application server receives, from a registered user, a selection of
an operation program for the positive displacement pump, the operation program including
control commands to control a drive motor of the positive displacement pump. The application
server transmits the program to a network hub to publish the control commands to the
positive displacement pump, wherein the positive displacement pump retrieves the control
commands from the network hub. The application server stores a record of the control
commands associated with the registered user. The application server receives operation
parameters from the positive displacement pump and stores the operation parameters
in association with the registered user. The application server evaluates the operation
parameters according to defined conditions. The application server transmits an alert
to a registered user.
[0008] In another aspect, the present disclosure provides a positive displacement pump.
The positive displacement pump may include a pumphead, a motor operably connected
to the pumphead to drive the pump, a liquid leak sensor configured to detect leakage
from the pumphead or tube installed therein, a memory, a network interface, a processor
in communication with the memory and the network interface. The processor may be configured
to subscribe, via the network interface, to a command hub that publishes commands
for the pump. The processor may be configured to control the motor to drive the pumphead
according to commands received from the command hub via the network interface. The
processor may be configured to collect operation parameters from the motor and a liquid
leak sensor. The processor may be configured to send the operation parameters to a
remote server via the network interface.
[0009] In another aspect, the disclosure provides a system of controlling a positive displacement
pump via a network. The system may include a positive displacement pump that includes
a pumphead, a motor operably connected to the pumphead to drive the pump, and a liquid
leak sensor configured to detect leakage from the pumphead or tube installed therein.
The system may include a server comprising a memory, a network interface, and a processor
in communication with the memory and the network interface. The processor may be configured
to receive, from a registered user, a selection of an operation program for the positive
displacement pump, the operation program including control commands to control a drive
motor of the positive displacement pump. The processor may be configured to transmit
the program to a network hub to publish the control commands to the positive displacement
pump, wherein the positive displacement pump retrieves the control commands from the
network hub. The processor may be configured to store (e.g., in a data repository)
a record of the control commands associated with the registered user. The processor
may be configured to receive operation parameters from the positive displacement pump
and store the operation parameters in association with the registered user. The processor
may be configured to evaluate the operation parameters according to defined conditions
to determine whether an alert condition has occurred. The processor may be configured
to transmit an alert to the registered user or another registered user.
[0010] These and other aspects of the present disclosure will become more fully understood
upon a review of the detailed description, which follows.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011]
FIG. 1 is schematic diagram of an example network environment for a positive displacement
pump, according to an aspect of the disclosure.
FIG. 2 is schematic diagram of an example positive displacement pump, according to
an aspect of the disclosure.
FIG. 3 is a schematic diagram of an example application server, according to an aspect
of the disclosure.
FIG. 4 is a diagram of an example user interface for a pump control application, according
to an aspect of the disclosure.
FIG. 5 is a diagram of an example user interface for receiving alerts for the pump
application, according to an aspect of the disclosure.
FIG. 6 is a flow diagram showing an example method of controlling a positive displacement
pump, according to an aspect of the disclosure.
FIG. 7 presents an exemplary system diagram of various hardware components and other
features, for use in accordance with aspects of the present disclosure; and
FIG. 8 is a block diagram of various exemplary system components, for use in accordance
with aspects of the present disclosure
DETAILED DESCRIPTION
[0012] The detailed description set forth below in connection with the appended drawings
is intended as a description of various configurations and is not intended to represent
the only configurations in which the concepts described herein may be practiced. The
detailed description includes specific details for the purpose of providing a thorough
understanding of various concepts. However, it will be apparent to those skilled in
the art that these concepts may be practiced without these specific details. In some
instances, well known components are shown in block diagram form in order to avoid
obscuring such concepts.
[0013] In an aspect, the disclosure provides for a positive displacement pump and network
system for controlling one or more positive displacement pumps via a remote application.
The network system may be implemented using a cloud architecture that provides for
geographic diversity for access speed and redundancy, for example. The network system
may provide real-time monitoring and control of the positive displacement pumps.
[0014] FIG. 1 is a representative schematic diagram of an example network environment 100
for a positive displacement pump 110, in accordance with aspects of the present disclosure.
The network environment 100 may include a user device 120 for providing a user interface
to a user, a communication network 130 for transmitting various communications among
devices as described herein, a command server 140 for publishing commands to one or
more positive displacement pumps 110, an application server 150 for providing an application
to the user device 120, and a database server 160 for storing data reported by one
or more positive displacement pumps 110 and user devices 120.
[0015] The positive displacement pump 110 may be a positive displacement pump including
the communications hardware (e.g., network interface) and software described herein
for providing remote control of the positive displacement pump 110. In an aspect,
the positive displacement pump 110 may operate in either a local mode, in which a
local user interface is used to control operation of the positive displacement pump
110, or a remote mode, in which commands received via a network interface are used
to control operation of the positive displacement pump 110.
[0016] The term "positive displacement pump" as used herein describes a category of fluid
pumps that trap a fixed amount of fluid and force the trapped fluid to a discharge
pipe. Positive displacement pumps are conventionally used in processes that require
precise measurement or dosing of fluid. Positive displacement pumps may be driven
by an electric motor under the control of a controller (e.g., electronic control unit
(ECU) and/or other processor) that moves fluid at a desired rate. In an aspect, a
positive displacement pump may include a detachable pumphead that includes a casing
and fluid contacting components of the positive displacement pump. The pumphead may
be driven by the motor via a magnetic coupling, for example. The positive displacement
pump may be fitted with a different pumphead, depending on the desired operation.
For example, in an aspect, a positive displacement pump may include a housing including
the drive motor, controller, and user interfaces, and a detachable pumphead may be
fitted in or on the housing. The selection of different pumpheads may configure the
positive displacement pump 110 as, for example, one of a peristaltic pump, gear pump,
or diaphragm pump.
[0017] The user device 120 may include various computing devices that may be used to access
an application via a web interface. For example, the user device 120 may be or include
any mobile or fixed computer device, including but not limited to a desktop or laptop
or tablet computer, a cellular telephone, a gaming device, a mixed reality or virtual
reality device, a music device, a television, a navigation system, a camera, a personal
digital assistant (PDA), a handheld device, or any other suitable computer device
having wired and/or wireless connection capability with one or more other devices.
The user device 120 may include a processor that executes an operating system and
one or more applications. In an aspect, the user device 120 may execute a dedicated
application for providing a user interface to the pump control application server
150. In another aspect, the user device 120 may execute a web browser application
to access a webpage providing a user interface to the pump control application server
150. In an aspect, the user device 120 may be configured for secure communication
with the application server 150. For example, the user device 120 may install a certificate
of the application server 150 allowing device verification and encrypted communications.
[0018] The communication network 130 may be or include a computer network that allows communication
among various devices. For example, the communication network 130 may include the
Internet and may transmit data packets according to the Internet protocol. As illustrated,
the communication network 130 may include the command server 140, application server
150, and database server 160. In an aspect, the command server 140, application server
150, and database server 160 may be implemented using a cloud architecture. For example,
the command server 140, application server 150, and database server 160 may each be
implemented as a virtual server to be provided by a cloud services provider. The cloud
service provider may generate instances of the virtual servers using geographically
dispersed computing hardware. A cloud architecture may provide scalability, load balancing,
stability against network interruptions, and redundancy of stored data, among other
features. It should be appreciated that the command server 140, application server
150, and database server 160 may also be implemented using conventional computer servers
configured to execute the programs described herein.
[0019] The command server 140 may include one or more computer servers configured to publish
commands to one or more positive displacement pumps 110. In an aspect, the command
server 140 may use a publish-subscribe based messaging protocol. For example, the
command server 140 may use Message Queuing Telemetry Transport (MQTT) protocol. In
an aspect, the use of a publish-subscribe based messaging protocol may provide security
by having the positive displacement pumps 110 establish a connection to a known server,
rather than accepting a connection from potentially different sources.
[0020] The command server 140 may publish commands to control the positive displacement
pumps 110. The control may include commands for the positive displacement pump 110
to provide information. The commands may be associated with a command string or topic,
which may include an identifier (
id) of the positive displacement pump 110 that should execute the command. The
id may be, for example, a media access control (MAC) address of the positive displacement
pump 110. The commands may also include one or more parameters for executing the command.
Table 1, below, includes a listing of example commands that may be used with a positive
displacement pump 110.
Table 1
TOPIC |
DESCRIPTION |
mflx/id/sts/online |
Powerup and Last Will Topic, message = "true" or "false" |
mflx/id/sts/Uptime |
Time since power up and Date/Time. JSON |
mflx/id/sts/Info |
RPM, Model, Adapter and Connection. JSON |
mflx/id/sts/RunStatus |
JSON |
|
true = pump motor on, false = pump motor off |
|
true = dispense on, false = dispense off |
|
true = sensor open, false = sensor closed |
|
error code (0 = status OK) |
mflx/id/sts/FlowDir |
Flow direction, "CW" or "CCW" |
mflx/id/sts/RemCont |
"1" = Remote, "0" = Local |
mflx/id/sts/DispMode |
"Continuous", "Time" or "Volume" |
mflx/id/sts/Tube |
Size and calibration status in JSON |
|
"1", "2", ... , "N" where N = last tube size selection |
|
false = tube not calibrated, true = calibrated |
mflx/id/sts/FlowUnits |
"1", "2", ... , "N" where N = last flow units selection |
mflx/id/sts/CumVol |
Cumulative volume (Text string of float number) |
mflx/id/sts/RemDisp |
Remaining dispense volume and time in JSON |
mflx/id/sts/BatchCount |
Batch Count current and total in JSON |
mflx/id/sts/FlowRate |
Current, Min and Max flow rates in JSON |
mflx/id/sts/NeedTimestamp |
Request to server to send Unix Timestamp (no message) |
[0021] The command server 140 may implement a program for a positive displacement pump 110
by publishing commands. For example, the command server 140 may receive a selection
of a program from the application server 150. The selected program may include a series
of commands and parameters. The command server 140 may publish the commands at the
appropriate time to control the positive displacement pump 110 to operate according
to the program. Additionally, the command server 140 may receive feedback from the
positive displacement pump 110 (e.g., in response to a Get command). The command server
140 may evaluate conditions based on the feedback for executing the program. In an
aspect, the command server 140 may be implemented as a remote server that provides
commands for multiple positive displacement pumps 110, which may be owned by different
organizations, for example. In another aspect, a local command server may be implemented
(e.g., by an organization) to allow control of local positive displacement pumps 110.
For example, a command server 140 may be implemented on a user device 120 and communicate
via a local area network (LAN) or other short-range communication protocol.
[0022] Application server 150 may include one or more computer servers configured to provide
a user interface accessible via a user device 120. The application server 150 may
communicate with dedicated applications executing on user devices 120 or may provide
a web-based interface accessible via a web browser, for example. As described in further
detail below, in one or more example implementations, the user interface provided
by the application server may allow a user to configure one or more positive displacement
pumps for operation. The application server 150 may also perform monitoring of the
positive displacement pumps 110 and provide alerts to the user devices 120. The user
interface may allow the user device 120 to configure which alerts to receive and how
the alerts are received (e.g., via application notification, text, or email).
[0023] Database server 160 may store information collected from one or more positive displacement
pumps 110 via the command server 140. The database server 160 may provide data security
and integrity protection, for example. In an aspect, the database server 160 may collect
and store data that may be reported to regulatory agencies, for example, as evidence
of laboratory processes. The database server 160 may provide data security using secure
socket layer (SSL) certificates to encrypt data between the pumps 110 and the database
server 160. Additionally, access to the database server 160, as well as the application
server 150 and command server 140, may be controlled using authenticated user names
and passwords, for example. Actions on any of the servers may be attributed to a specific
user. The database server 160 may generate an audit trail indicating which users performed
actions at which time. Further, because the pumps 110 may be operated in either local
mode or remote mode, the database server 160 may track actions taken in local mode
even if a registered user is not identified. For example, the actions performed in
local mode may therefore be attributed to a local user.
[0024] The database server 160 may segregate data of multiple customers. For example, a
customer (e.g., a laboratory, corporation, or other entity), may have access only
to data associated with devices belonging to the customer. A customer may designate
multiple registered users (e.g., employees), who may access data based on user role.
For example, the database server 160 may allow access to users based on a security
level. For instance, an administrator may be able to configure database storage, export
data, annotate data, and generate audit reports, while a regular user may only be
able to read or export data. Additionally, a system administrator may not be associated
with any customer and may at least read any data.
[0025] FIG. 2 is a representative schematic diagram of an example positive displacement
pump 110 usable in accordance with aspects of the present disclosure. The positive
displacement pump 110 may include a wet end 220 and a case 230. The wet end 220 may
include fluid handling components including a pumphead 222, a liquid supply 224, an
inlet tube 226, and an outlet tube 228. The wet end 220 may be detachable from the
case 230 to allow replacement or substitution of the wet end 220. For example, different
pumpheads 222 may be selected for use in pumping different fluids.
[0026] The pumphead 222 may include a mechanism for pumping fluid. In an aspect, the positive
displacement pump 110 may use a pumphead that allows precise monitoring of the fluid
being pumped (e.g., volume pumped). Example pumpheads may include a peristaltic pumphead,
a quaternary diaphragm pumphead, and/or a gear pumphead. The pumphead 222 may be connected
to a liquid supply 224 via an inlet tube 226. The pumphead 222 may pump the fluid
to the outlet tube 228. In an aspect, for example, using a peristaltic pump, the inlet
tube 226 and the outlet tube 228 may be or include a continuous tube extending through
the pumphead 222.
[0027] The case 230 may include electronic components of the positive displacement pump
110. For example, the case 230 may include a network interface 232, a local user interface
234, a drive motor 240, a processor 250, a memory 252, and a leak sensor 254. Further,
the memory 252 may store instructions executable by the processor 250 for implementing
a pump controller 260, which may include a motor controller 262, a command module
264, and a reporting module 266.
[0028] The network interface 232 may include a wired or wireless network interface for transmitting
and receiving data packets. In an aspect, the network interface 232, for example,
may utilize transmission control protocol/Internet protocol (TCP/IP) packets that
may carry commands, parameters, or data. For example, the network interface 232 may
receive MQTT messages including the commands listed in Table 1 above. The network
interface 232 may forward commands to the processor 250 for processing by the pump
controller 260. Conversely, the network interface 232 may receive data generated by
the pump controller 260 from the processor 250 and transmit the data to the command
server 140.
[0029] The local user interface 234 may include any suitable controls provided on the positive
displacement pump 110 for controlling the positive displacement pump 110. In an aspect,
the local user interface 234 may include a display screen that presents menus for
selecting commands similar to the commands transmitted by the command server 140.
In another aspect, the local user interface 234 may include dedicated buttons and/or
other selection features that perform specific commands. For example, the local user
interface 234 may include a button for selection to start/stop pumping. The local
user interface 234 may generate commands to the processor 250 for processing by the
pump controller 260. As noted above, the positive displacement pump 110 may operate
in a remote mode in which the local user interface 234 is at least partially disabled
to prevent local input.
[0030] The drive motor 240 may be or include an electric motor that provides a force for
pumping the fluid. In an aspect, the drive motor 240 may be magnetically coupled to
the pumphead 222 to drive the pumphead 222. The drive motor 240 may be controlled
by the pump controller 260. For example, the pump controller 260 may generate a control
signal indicating a speed and direction of the drive motor 240 based on received commands.
[0031] The processor 250 may include one or more processors for executing instructions.
An example of processor 250 may include, but is not limited to, any suitable processor
specially programmed as described herein, including a controller, microcontroller,
application specific integrated circuit (ASIC), field programmable gate array (FPGA),
system on chip (SoC), or other programmable logic or state machine. The processor
250 may include other processing components, such as an arithmetic logic unit (ALU),
registers, and a control unit. The processor 250 may include multiple cores and may
be able to process different sets of instructions and/or data concurrently using the
multiple cores to execute multiple threads, for example.
[0032] Memory 252 may be configured for storing data and/or computer-executable instructions
defining and/or associated with the pump controller 260, and processor 250 may execute
such instructions with regard to operation of the pump controller 260. Memory 252
may represent one or more hardware memory devices accessible to processor 250. An
example of memory 252 can include, but is not limited to, a type of memory usable
by a computer, such as random access memory (RAM), read only memory (ROM), tapes,
magnetic discs, optical discs, volatile memory, non-volatile memory, and any combination
thereof. Memory 252 may store local versions of a pump controller application being
executed by processor 250, for example.
[0033] Leak sensor 254 may be or include a hardware leak sensor that detects whether liquid
is leaking within or from the positive displacement pump 110. For example, a leak
may occur when a component of the wet end 220 fails or becomes detached. For example,
either the inlet tube 226 or the outlet tube 228 may rupture or become detached from
the pumphead 222. In an aspect, the leak sensor 254 may include an electronic mesh
that forms a circuit when liquid is present. The leak sensor 254 may be coupled to
the processor 250, which may generate a stop command to stop operation of the positive
displacement pump 110 in response to the leak sensor 254 detecting a leak. Stopping
the positive displacement pump 110 may prevent damage to the pump and waste of a fluid,
for example. Further, a notification of the leak may be used to abort or modify a
process using the positive displacement pump 110.
[0034] The pump controller 260 may control operation of the positive displacement pump 110
based on commands received from either the network interface 232 or the local user
interface 234, for example. The pump controller 260 may include a motor controller
262 for controlling operation of the drive motor 240, a command module 264 for interpreting
and executing received commands, and/or a reporting module 266 for monitoring pump
operation and reporting data regarding the positive displacement pump 110.
[0035] FIG. 3 is a representative schematic diagram of an example application server 150
usable in accordance with aspects of the present disclosure. In an aspect, the application
server 150 may provide a user interface to a user associated with a user device 120
for controlling one or more pumps 110, which may, for example, be selectively associated
with the user. In an aspect, the application server may be designed to accommodate
organizations that may purchase multiple pumps to be used by multiple users. The application
server 150 may model such organizations as customers and thereby provide a customer
management system 320 tailored so as to facilitate access control to the multiple
pumps associated with each customer, for example.
[0036] As noted above, the application server 150 may be implemented using a computer server
or a virtual server implemented using cloud resources, for example. In either case,
the application server may be implemented on computer hardware including, for example,
a processor 310, memory 312, and network interface 314, each of which may have similar
hardware components to those described above.
[0037] The customer management system 320 may define a customer profile 330 for each customer
organization. The customer profile 330 may include a number of registered users 332,
which may include an owner, administrator, and staff, for example. The owner may be
an account owner that retains all access privileges for the customer. An administrator
may have the ability to configure pumps and select programs for operating the pumps.
Staff may be limited to receiving alerts regarding pumps and obtaining data regarding
the pumps or have only other limited permissions, for example.
[0038] The customer profile 330 may also include a number of pump profiles 334 associated
with the customer. The customer may, for example, use a user device 120 to register
each positive displacement pump 110 and create a corresponding pump profile 334. The
pump profile 334 may then be accessed by the users 332. The pump profile may include
one or more identifiers, a current control mode (e.g., remote or local), and a current
status (e.g., on-off and/or current operation parameters), for example.
[0039] The customer profile 330 may also include a database module 336 that provides access
to the database server 160. For example, the database module 336 may provide a user
interface that allows a user 332 to generate various reports regarding the pump profiles
334. As another example, the database module 336 may include an audit tool 360 that
allows a user to inspect an audit trail for data in the database server 160.
[0040] Among other things, the customer profile 330 may also include a notification module
338 that allows a customer to configure notifications or alerts to be received by
users 332. The notification module 338 may allow a selection of an alert type (e.g.,
text, email, application notification) for each user, and selection of one or more
predefined alert conditions (e.g., leak detected, change in flow rate, motor temperature,
pump offline, dispense on, dispense off, pump head open, aux input open, aux input
closed).
[0041] The customer profile 330 may also include a program module 340 that allows a customer
to configure a program for controlling a positive displacement pump 110, for example.
The program module 340 may allow the user to select a predefined program for a pump
model and enter parameters for the predefined program. In an aspect, a user may upload
a program to be included in the predefined programs.
[0042] The customer management system 320 may also include a pump management module 350.
The pump management module 350 may be hidden from direct user interaction, for example,
but may be used by a system administrator to manage different pump models. For example,
the pump management module 350 may include programs 352, which are predefined for
each pump model. The programs 352 may include commands that may be executed by a particular
model of pump.
[0043] The pump management module 350 may also include a prediction module 354 for each
pump model that is configured to predict when a failure is likely to occur for the
particular pump model based on a current configuration of the pump. In an aspect,
the prediction module 354 may collect pump data via one or more of the application
server 150, command server 140, or database server 160. The data may, for example,
include user entered data, such as a physical pump configuration including selected
pumphead, selected tubing properties (e.g., formulation and size), fluid formulation,
and/or other properties, based on choices made by the user. The data may also include
pump operating parameters that may be detected and reported by the positive displacement
pump 110, such as rotation speed, rotation direction, and number of compressions.
The prediction module 354 may compare, for example, the current configuration and
operating parameters of a specific pump to historical failure information for the
same or similar model of pump or pump component (e.g., tubing) to predict a likelihood
of failure or a component lifetime to prevent failure. For example, in a peristaltic
pump, the prediction module 354 may determine an average time to failure or average
number of cycles to failure for the tubing used in the current configuration. The
prediction module 354 may then predict a likely time of failure under the current
configuration. The prediction module 354 may provide (or may be selected to provide)
a notification to the users 332 prior to the predicted likely time of failure.
[0044] In an aspect, the prediction module 354 may use data collected in database server
160 to determine the average likelihood of failure over a given time frame or likely
length of a component lifetime, which may be used to prevent or reduce likelihood
of failure. In another aspect, the prediction module 354 may use historical information
of a component manufacturer or specifications provided by a component manufacturer,
alone, or in combination with the data collected in database server 160.
[0045] FIG. 4 is a diagram of an example user interface 400 for a pump control application
usable in accordance with various features of the present disclosure that may be executed
by a user device 120. The example user interface 400 may be for a mobile device. A
person of ordinary skill in the art would readily understand that equivalent user
interfaces may be used for different types of user devices 120. The user interface
400 may present information such as pump status, communication status, reservoir volume,
off-timer value, batch count, current flow rate, or direction, for example. The user
interface 400 may include a mode toggle switch 410 that allows the user to take control
of the positive displacement pump 110 via the user device 120 by switching from a
local mode to a remote mode. When the mode toggle switch 410 is switched to remote
mode, the application server 150 may generate a command on the command server 140
to switch the positive displacement pump 110 to the remote mode. The local user interface
234 (FIG. 2) of the positive displacement pump 110 may then become disabled. The user
interface 400 may include a control option 420 that may be expanded to allow the user
to change various pump parameters by generating commands, for example. For instance,
the user may select the flow rate 430 and type, select, or otherwise input a number
within an indicated range. The user interface 400 may include a start button 440 to
start the positive displacement pump 110 with new parameters. In an aspect, in response
to the start button 440 being selected, the application server 150 may generate a
new command or start a new program. In an aspect, the user interface 400 may only
allow the user to change pump parameters while the positive displacement pump 110
is stopped.
[0046] In another aspect, the user interface 400 may include a program selection button
450. When a user selects the program selection button 450, the user interface 400
may present a list of programs available for the positive displacement pump 110. The
user may select a program from the list. When the program is selected, the user interface
400 may update to display the operating parameters of the selected program. The user
may start the program by selecting the start button 440.
[0047] The user interface 400 may include a data record button 460 providing an option regarding
control of data generated by the positive displacement pump 110. For example, the
user interface may allow a user to determine whether the data is copied to the data
server 160.
[0048] FIG. 5 is a diagram of an example user interface 500 usable in accordance with various
features of the present disclosure for receiving alerts for the pump application.
The user interface 500 may allow configuration of alerts or notifications for a particular
pump, for example. The user interface 500 may allow a user to select which alerts
to receive, for example, by setting a filter 540. For example, the user interface
500 may present a plurality of alerts 510, each of which is associated with an alert
type based on a defined condition 520, which may include one or more alert conditions.
The user interface 500 may provide a timestamp 530 for each alert 510. Further, the
user interface 500 may allow the user to indicate a transmission type for the alert
(e.g., text, email, or application notification.
[0049] FIG. 6 is a flow diagram showing an example method 600 of controlling a positive
displacement pump, in accordance with aspects of the present disclosure. The method
600 may be performed by the application server 150 of FIG. 1, for example. Optional
blocks are shown with dashed lines.
[0050] In block 610, the method 600 may include receiving, such as from a registered user,
a selection of an operation program for a positive displacement pump, the operation
program including control commands to control a drive motor of the positive displacement
pump. In an aspect, for example, as shown in FIG. 3, the customer management system
320 may receive the selection of the operation program 352 from the registered user
332 via the program module 340. The operation program 352 may include control commands
(see Table 1) to control the drive motor 240 (FIG. 2) of the positive displacement
pump 110 (FIG. 1).
[0051] In block 620, the method 600 may include sending the operation program to a network
hub to publish the control commands to the positive displacement pump, wherein the
positive displacement pump retrieves the control commands from the network hub. In
an aspect, for example, as shown in FIG. 3, the customer management system 320 may
send the operation program 352 to the command server 140 (FIG. 1) via the network
interface 314. The positive displacement pump 110 may retrieve the control commands
from the command server 140, as shown in FIG. 1. In an aspect, the block 620 may optionally
include sub-block 622, in which the method may include indicating a time to publish
the commands to control the positive displacement pump to operate according to the
program. For example, as shown in FIG. 3, the operation program 352 may include an
absolute or relative time for each command. The command server 140 (FIG. 1) may publish
the commands at the designated time, or may publish the commands earlier and indicate
a time for each command to be executed.
[0052] In block 630, the method 600 may include storing a record of the control commands
associated with the registered user. In an aspect, for example, as shown in FIG. 3,
the customer management system 320 may use the database module 336 to store the record
of the control commands associated with the registered user 332.
[0053] In block 640, the method 600 may include receiving operation parameters from the
positive displacement pump and storing the operation parameters in association with
the registered user. In an aspect, for example, as shown in FIG. 3, the customer management
system 320 may receive the operation parameters from the positive displacement pump
110 (FIG. 1) via the command server 140 (FIG. 1). The customer management system 320
may associate the operation parameters with the registered user and store the operation
parameters in association with the registered user at the database server 160 (FIG.
1) using the database module 336.
[0054] In block 650, the method 600 may include evaluating the operation parameters according
to defined conditions to determine whether an alert condition has occurred. In an
aspect, for example, as shown in FIG. 3, the customer management system 320 may use
the notification module 338 to evaluate the operation parameters according to defined
conditions 520 (FIG. 5). For example, at sub-block 652, the block 650 may optionally
include the step of comparing a current configuration and the operating parameters
of the positive displacement pump to historical failure information for a same or
similar model of pump or pump component to predict a likelihood of failure or a component
lifetime. For instance, the pump may be a peristaltic pump, and the historical failure
information may include an average time to failure or average number of cycles to
failure for a tubing used in the current configuration.
[0055] In block 660, the method 600 may include transmitting an alert to the registered
user or another registered user. In an aspect, for example, as shown in FIG. 3, the
customer management system 320 may use the notification module 338 to transmit an
alert 510 (FIG. 5) corresponding to the defined conditions 520 (FIG. 5) to the registered
user 332 (e.g., admin) or another registered user (e.g., staff). For example, the
alert 510 (FIG. 5) may indicate a predicted time of failure for the pump or a component
thereof.
[0056] In block 670, the method 600 may optionally include receiving an indication that
a leak has been detected at the positive displacement pump. For example, as shown
in FIG.3, the customer management system 320 may receive the operation parameters
from the positive displacement pump 110 (FIG. 1) via the command server 140 (FIG.
1). The customer management system 320 may use the notification module 338 to transmit
an alert regarding the leak to a registered user.
[0057] In block 680, the method 600 may optionally include generating an audit report including
the record of the control commands and associated registered user. For example, as
shown in FIG. 3, the database module 336 may use the audit tool 360 to generate the
audit report based on a request from a registered user.
[0058] Aspects of the present disclosure may be implemented using hardware, software, or
a combination thereof and may be implemented in one or more computer systems or other
processing systems. In one aspect, the disclosure is directed toward one or more computer
systems capable of carrying out the functionality described herein. FIG. 7 presents
an example system diagram of various hardware components and other features that may
be used in accordance with aspects of the present disclosure. Aspects of the present
disclosure may be implemented using hardware, software, or a combination thereof and
may be implemented in one or more computer systems or other processing systems. In
one example variation, aspects of the disclosure are directed toward one or more computer
systems capable of carrying out the functionality described herein. An example of
such a computer system 700 is shown in FIG. 7.
[0059] Computer system 700 includes one or more processors, such as processor 704. The processor
704 is connected to a communication infrastructure 706 (e.g., a communications bus,
cross-over bar, or network). Various software aspects are described in terms of this
example computer system. After reading this description, it will become apparent to
a person skilled in the relevant art(s) how to implement aspects of the disclosure
using other computer systems and/or architectures.
[0060] Computer system 700 may include a display interface 702 that forwards graphics, text,
and other data from the communication infrastructure 706 (or from a frame buffer not
shown) for display on a display unit 730. Computer system 700 also includes a main
memory 708, preferably random access memory (RAM), and may also include a secondary
memory 710. The secondary memory 710 may include, for example, a hard disk drive 712
and/or a removable storage drive 714, representing a floppy disk drive, a magnetic
tape drive, an optical disk drive, etc. The removable storage drive 714 reads from
and/or writes to a removable storage unit 718 in a well-known manner. Removable storage
unit 718, represents a floppy disk, magnetic tape, optical disk, etc., which is read
by and written to removable storage drive 714. As will be appreciated, the removable
storage unit 718 includes a computer usable storage medium having stored therein computer
software and/or data.
[0061] In alternative aspects, secondary memory 710 may include other similar devices for
allowing computer programs or other instructions to be loaded into computer system
700. Such devices may include, for example, a removable storage unit 722 and an interface
720. Examples of such may include a program cartridge and cartridge interface (such
as that found in video game devices), a removable memory chip (such as an erasable
programmable read only memory (EPROM), or programmable read only memory (PROM)) and
associated socket, and other removable storage units 722 and interfaces 720, which
allow software and data to be transferred from the removable storage unit 722 to computer
system 700.
[0062] Computer system 700 may also include a communications interface 724. Communications
interface 724 allows software and data to be transferred between computer system 700
and external devices. Examples of communications interface 724 may include a modem,
a network interface (such as an Ethernet card), a communications port, a Personal
Computer Memory Card International Association (PCMCIA) slot and card, etc. Software
and data transferred via communications interface 724 are in the form of signals 728,
which may be electronic, electromagnetic, optical or other signals capable of being
received by communications interface 724. These signals 728 are provided to communications
interface 724 via a communications path (e.g., channel) 726. This path 726 carries
signals 728 and may be implemented using wire or cable, fiber optics, a telephone
line, a cellular link, a radio frequency (RF) link and/or other communications channels.
In this document, the terms "computer program medium" and "computer usable medium"
are used to refer generally to media such as a removable storage drive 780, a hard
disk installed in hard disk drive 770, and signals 728. These computer program products
provide software to the computer system 700. Aspects of the disclosure are directed
to such computer program products.
[0063] Computer programs (also referred to as computer control logic) are stored in main
memory 708 and/or secondary memory 710. Computer programs may also be received via
communications interface 724. Such computer programs, when executed, enable the computer
system 700 to perform various features in accordance with aspects of the present disclosure,
as discussed herein. In particular, the computer programs, when executed, enable the
processor 704 to perform such features. Accordingly, such computer programs represent
controllers of the computer system 700.
[0064] In variations where aspects of the disclosure are implemented using software, the
software may be stored in a computer program product and loaded into computer system
700 using removable storage drive 714, hard disk drive 712, or communications interface
720. The control logic (software), when executed by the processor 704, causes the
processor 704 to perform the functions in accordance with aspects of the disclosure
as described herein. In another variation, aspects are implemented primarily in hardware
using, for example, hardware components, such as application specific integrated circuits
(ASICs). Implementation of the hardware state machine so as to perform the functions
described herein will be apparent to persons skilled in the relevant art(s).
[0065] In yet another example variation, aspects of the disclosure are implemented using
a combination of both hardware and software.
[0066] FIG. 8 is a block diagram of various example system components (e.g., on a network)
that may be used in accordance with aspects of the present disclosure. The system
800 may include one or more accessors 860, 862 (also referred to interchangeably herein
as one or more "users") and one or more terminals 842, 866. The accessors 860, 862
may correspond to user devices 120 (FIG. 1). In one aspect, data for use in accordance
with aspects of the present disclosure may, for example, be input and/or accessed
by accessors 860, 862 via terminals 842, 866, such as personal computers (PCs), minicomputers,
mainframe computers, microcomputers, telephonic devices, or wireless devices, such
as personal digital assistants ("PDAs") or a hand-held wireless devices coupled to
a server 843, such as a PC, minicomputer, mainframe computer, microcomputer, or other
device having a processor and a repository for data and/or connection to a repository
for data, via, for example, a network 844, such as the Internet or an intranet, and
couplings 845, 846, 864. The couplings 845, 846, 864 include, for example, wired,
wireless, or fiber optic links. In another example variation, the method and system
in accordance with aspects of the present disclosure operate in a stand-alone environment,
such as on a single terminal.
[0067] The aspects of the disclosure discussed herein may also be described and implemented
in the context of computer-readable storage medium storing computer-executable instructions.
Computer-readable storage media includes computer storage media and communication
media. For example, flash memory drives, digital versatile discs (DVDs), compact discs
(CDs), floppy disks, and tape cassettes. Computer-readable storage media may include
volatile and nonvolatile, removable and non-removable media implemented in any method
or technology for storage of information such as computer readable instructions, data
structures, modules or other data.
[0068] This written description uses examples to disclose aspects of the present disclosure,
including the preferred embodiments, and also to enable any person skilled in the
art to practice the aspects thereof, including making and using any devices or systems
and performing any incorporated methods. The patentable scope of these aspects is
defined by the claims, and may include other examples that occur to those skilled
in the art. Such other examples are intended to be within the scope of the claims
if they have structural elements that do not differ from the literal language of the
claims, or if they include equivalent structural elements with insubstantial differences
from the literal language of the claims. Aspects from the various embodiments described,
as well as other known equivalents for each such aspect, can be mixed and matched
by one of ordinary skill in the art to construct additional embodiments and techniques
in accordance with principles of this application.
1. A positive displacement pump, comprising:
a pumphead;
a motor operably connected to the pumphead to drive the pump;
a leak sensor configured to detect leakage from the pumphead or tube installed therein;
a memory;
a network interface;
a processor in communication with the memory and the network interface, the processor
configured to:
subscribe, via the network interface, to a command hub that publishes commands for
the pump;
control the motor to drive the pumphead according to commands received from the command
hub via the network interface;
collect operation parameters from the motor and the leak sensor; and
send the operation parameters to a remote server via the network interface.
2. The positive displacement pump of claim 1, wherein the processor is configured to
communicate with the command hub using Message Queuing Telemetry Transport (MQTT)
protocol.
3. The positive displacement pump of claim 1 or 2, wherein the command hub publishes
commands for multiple pumps, and the processor is configured to determine which commands
to execute based on an identifier of the positive displacement pump.
4. The positive displacement pump of claim 3, wherein the identifier is a media access
control (MAC) address of the positive displacement pump.
5. The positive displacement pump of any one of claims 1 to 4, further comprising:
a local user interface, wherein the processor is configured to operate in one of a
local mode in which the processor executes commands from the local user interface
and a remote mode in which the local user interface is at least partially disabled
to prevent local input.
6. The positive displacement pump of any one of claims 1 to 5, wherein the leak sensor
comprises an electronic mesh that forms a circuit when liquid is present.
7. The positive displacement pump of any one of claims 1 to 6, wherein the processor
is configured to stop the motor in response to the leak sensor detecting a leak.
8. The positive displacement pump of any one of claims 1 to 7, wherein the operation
parameters include rotation speed, rotation direction, and number of compressions.
9. The positive displacement pump of any one of claims 1 to 8, wherein the pumphead is
one of: a peristaltic pumphead, a quaternary diaphragm pumphead, or a gear pumphead.
10. A method of controlling a positive displacement pump via a network, comprising:
receiving, from a registered user, a selection of an operation program for the positive
displacement pump, the operation program including control commands to control a drive
motor of the positive displacement pump;
sending the program to a network hub to publish the control commands to the positive
displacement pump, wherein the positive displacement pump retrieves the control commands
from the network hub;
storing a record of the control commands associated with the registered user;
receiving operation parameters from the positive displacement pump and storing the
operation parameters in association with the registered user;
evaluating the operation parameters according to defined conditions to determine whether
an alert condition has occurred; and
transmitting an alert to the registered user or another registered user.
11. The method of claim 10, wherein the network hub publishes the control commands using
Message Queuing Telemetry Transport (MQTT) protocol.
12. The method of claim 10 or 11, wherein the command hub publishes commands for multiple
pumps, each command including an identifier of the positive displacement pump to execute
the respective command.
13. The method of claim 12, wherein the identifier is a media access control (MAC) address
of the positive displacement pump.
14. The method of any one of claims 10 to 13, wherein the operation parameters include
rotation speed, rotation direction, and number of compressions.
15. The method of any one of claims 10 to 14, wherein evaluating the operation parameters
according to defined conditions comprises:
comparing a current configuration and the operating parameters of the positive displacement
pump to historical failure information for a same or similar model of pump or pump
component to predict a likelihood of failure or a component lifetime.
16. The method of claim 15, wherein the positive displacement pump is a peristaltic pump
and the historical failure information includes an average time to failure or average
number of cycles to failure for a tubing used in the current configuration.
17. The method of any one of claims 10 to 16, wherein sending the program to the network
hub to publish the control commands comprises:
indicating a time to publish the commands to control the positive displacement pump
to operate according to the program.
18. The method of any one of claims 10 to 17, further comprising:
generating an audit report including the record of the control commands and associated
registered user, the operation parameters from the positive displacement pump, and
the alert.
19. The method of any one of claims 10 to 18, further comprising:
receiving an indication that a leak has been detected at the positive displacement
pump.
20. A system of controlling a positive displacement pump via a network, comprising:
a positive displacement pump, comprising:
a pumphead, a motor operably connected to the pumphead to drive the pump, and a leak
sensor configured to detect leakage from the pumphead or tube installed therein; and
a server comprising a memory, a network interface, and a processor in communication
with the memory and the network interface, the processor configured to:
receive, from a registered user, a selection of an operation program for the positive
displacement pump, the operation program including control commands to control a drive
motor of the positive displacement pump;
send the program to a network hub to publish the control commands to the positive
displacement pump, wherein the positive displacement pump retrieves the control commands
from the network hub;
store a record of the control commands associated with the registered user;
receive operation parameters from the positive displacement pump and storing the operation
parameters in association with the registered user;
evaluate the operation parameters according to defined conditions to determine whether
an alert condition has occurred; and
transmit an alert to the registered user or another registered user.