This disclosure relates generally to bioprocessing systems.
Bioprocessing systems generally include a bioprocess controller to which various bioprocess instruments including, for example, sensors, pumps, mass flow controllers, reaction containers, agitators, temperature control devices, and/or other instruments related to bioproduction are connected. Those instruments are generally connected through the bioprocess controller to a main automation control system. Once such example of an automation control system that has been adapted for bioprocessing systems is the DeltaV™ control system from Emerson Electric Co.
In a bioprocessing system, the main control system generally communicates with at least some of the instruments in the system using a standard communication protocol suited for automated systems. A commonly used communication protocol is the Modbus protocol.
Systems, methods, and articles of manufacture, including computer program products, are provided for an intelligent gateway and/or controller for a bioprocessing control system. In one aspect, there is provided a system. The system can include at least one data processor and at least one memory. The at least one memory can store instructions that result in operations when executed by the at least one data processor. The operations can include: receiving, from a controller configured to control a bioprocessing instrument of a plurality of bioprocessing instruments, a request for data associated with the plurality of bioprocessing instruments. The data includes a primary data set including a block of primary data measured by the plurality of bioprocessing instruments and a secondary data set having a lower priority than the primary data set. The operations further include causing the controller to control the bioprocessing instrument for processing a cell culture containing one or more target biological components by at least: sending, to the controller in response to the request, the block of primary data. The operations further include sending, to the controller during the sending the block of primary data and in response to the request, a portion of the secondary data set, thereby reducing a load on the controller.
In some aspects, the secondary data set is stored across a plurality of pages, and a page of the plurality of pages contains the portion of the secondary data set.
In some aspects, the request includes an identifier identifying the page of the plurality of pages.
In some aspects, the block of primary data includes: a first parameter measured by at least one of the plurality of bioprocessing instruments. The first parameter is mapped to a first communication protocol address. The block of primary data further includes a second parameter measured by at least one of the plurality of bioprocessing instruments. The second parameter is mapped to a second communication protocol address. The first parameter and the second parameter impact operation of the bioprocessing instrument.
In some aspects, the portion of the secondary data set includes secondary data corresponding to at least two of the plurality of bioprocessing instruments, and the portion of the secondary data set is mapped to a single communication protocol address.
In some aspects, the request is a first request. The operations further include receiving, from the controller, a second request for data associated with the plurality of bioprocessing instruments after the first request. The operations further include sending, to the controller in response to the second request, a second portion of the secondary data set. The second request includes a second identifier associated with the second portion.
In some aspects, the operations further include: further causing the controller to control the bioprocessing instrument by at least: sending, to the controller in response to the second request, a second block of primary data measured by the plurality of bioprocessing instruments after the sending the block of primary data. The second portion of the secondary data set is sent during the sending of the second block of primary data.
In some aspects, the second request is received at a predetermined interval after the first request.
In some aspects, the primary data set includes operational data associated with the plurality of bioprocessing instruments. The secondary data set includes instrument data associated with the plurality of bioprocessing instruments.
In some aspects, the operational data includes at least one parameter measured by the plurality of bioprocessing instruments that impacts operation of at least one of the plurality of bioprocessing instruments.
In some aspects, the instrument data includes instrument information about at least one of the plurality of bioprocessing instruments.
In some aspects, the priority of the primary data set and the secondary data set is predetermined.
In some aspects, the operations further include receiving the primary data set and the secondary data set from the plurality of bioprocessing instruments. The operations further include storing the primary data set in a primary data register. The storing includes mapping a unique communication protocol address to each parameter in the block of primary data of the primary data set. The operations further include storing the secondary data set in a secondary data register. The storing includes mapping a single communication protocol address to the portion of the secondary data set. The portion of the secondary data set corresponds to at least two bioprocessing instruments of the plurality of bioprocessing instruments.
In some aspects, the operations further include receiving the primary data set and the secondary data set from the plurality of bioprocessing instruments. At least a portion of the primary data set or the secondary data set has a first unit of measurement. The operations may include converting the first unit of measurement to a second unit of measurement prior to sending the block of primary data or the secondary data set to the controller.
In one aspect, there is provided a system. The system can include at least one data processor and at least one memory. The at least one memory can store instructions that result in operations when executed by the at least one data processor. The operations can include: sending a request for data associated with a plurality of bioprocessing instruments. The data includes a primary data set including a block of primary data measured by the plurality of bioprocessing instruments and a secondary data set having a lower priority than the primary data set. The operations include receiving, in response to the request, the block of primary data. The operations include receiving, in response to the request and during the receiving the block of primary data, a portion of the secondary data set, thereby reducing a computing load for processing the data associated with the plurality of bioprocessing instruments. The operations include controlling operation of a bioprocessing instrument of the plurality of bioprocessing instruments to process a cell culture containing one or more target biological components based at least on the received block of primary data.
In some aspects, the secondary data set is stored across a plurality of pages, and wherein a page of the plurality of pages contains the portion of the secondary data set.
In some aspects, the request includes an identifier identifying the page of the plurality of pages.
In some aspects, the block of primary data includes: a first parameter measured by at least one of the plurality of bioprocessing instruments. The first parameter is mapped to a first communication protocol address. The block of primary data further includes a second parameter measured by at least one of the plurality of bioprocessing instruments. The second parameter is mapped to a second communication protocol address. The first parameter and the second parameter impact operation of the bioprocessing instrument.
In some aspects, the portion of the secondary data set includes secondary data corresponding to at least two of the plurality of bioprocessing instruments, and the portion of the secondary data set is mapped to a single communication protocol address.
In some aspects, the request is a first request. The operations further includes: sending a second request for data associated with the plurality of bioprocessing instruments after the first request, and receiving, in response to the second request, a second portion of the secondary data set. The second request includes a second identifier associated with the second portion.
In some aspects, the operations further include receiving, in response to the second request, a second block of primary data measured by the plurality of bioprocessing instruments. The second portion of the secondary data is received during the receiving of the second block of primary data. The operations include further controlling operation of the bioprocessing instrument based on the second block of primary data.
In some aspects, the second request is sent at a predetermined interval after the first request.
In some aspects, the primary data set includes operational data associated with the plurality of bioprocessing instruments and the secondary data set includes instrument data associated with the plurality of bioprocessing instruments.
In some aspects, the operational data includes at least one parameter measured by the plurality of bioprocessing instruments that impacts operation of at least one of the plurality of bioprocessing instruments.
In some aspects, the instrument data includes instrument information about at least one of the plurality of bioprocessing instruments.
In some aspects, the priority of the primary data set and the secondary data set is predetermined.
In some aspects, the controlling includes sending a control signal to the bioprocessing instrument.
A gateway device for a bioprocess controller in a bioprocessing system includes one or more processors, a control system data communication link configured to be communicatively coupled to a control system to communicate between the gateway and the control system using a set of data addresses of a first communication protocol, a plurality of instrument data communication links configured to be communicatively coupled to a plurality of bioprocessing instruments to communicate bioprocessing instrument data between the plurality of bioprocessing instruments and the gateway device, and one or more computer readable media with instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations including: exchanging the instrument data between the gateway and the control system using the set of data addresses wherein a first subset of the set of data addresses is used to exchange primary instrument data having a first priority level and a second subset of the set data addresses is used to exchange secondary instrument data having a second priority level.
In some aspects, the first subset of data addresses is mapped to the primary instrument data such that one protocol data address is mapped to one instrument data element.
In some aspects, the second subset of data addresses is mapped to the secondary instrument data such that one protocol data address is mapped to more than one instrument data elements by using an address identifier external to the first communication protocol.
In some aspects, the plurality of bioprocessing instruments include sensors that sense conditions in one or more bioprocess containers.
In some aspects, the plurality of sensors include a temperature sensor, a pH sensor, or an oxygen sensor.
In some aspects, the plurality of sensors include a scale.
In some aspects, the plurality of sensors further include a pressure sensor.
In some aspects, the plurality of bioprocessing instruments include a temperature control unit and pumps.
In some aspects, the plurality of bioprocessing instruments include a temperature control unit, pumps, mass flow controllers, or an agitator.
In some aspects, the first communication protocol is a Modbus communication protocol and the set of data addresses are Modbus registers.
In some aspects, the first subset of data addresses is used to exchange secondary data including instrument data elements that are required to be exchanged less frequently than primary data including other instrument data elements.
In some aspects, the gateway is housed in the bioprocess controller.
In some aspects, a plurality of instrument control boards are housed in the bioprocess controller and are communicatively coupled between the gateway device and a plurality of bioprocessing instruments.
In some aspects, the gateway device is housed outside of the bioprocess controller.
According to some aspects, a method of controlling a process in a bioprocessing system includes receiving a primary data set of bioprocess instrument data elements and a secondary data set of bioprocess instrument data elements at a gateway device, storing the primary set of bioprocess instrument data elements in a primary data registry at the gateway device, where the primary data registry includes a set of primary data addresses, of a first commination protocol, that are equal to the number of bioprocess instrument data elements in the primary data set, storing the secondary data set of bioprocess instrument data elements in a secondary data registry at the gateway device, where the secondary data registry includes a set of secondary data addresses that are less than the number of bioprocess instrument data elements in the secondary data set, and sending the primary data set and the secondary data set to a controller configured to control a bioprocess instrument in the bioprocessing system.
In some aspects, each of the secondary data addresses are mapped to more than one bioprocess instrument data element in the secondary data set.
In some aspects, the set of secondary data addresses are mapped to more than one bioprocess instrument data element in the secondary data set using an address identifier external to the first communication protocol.
In some aspects, the primary data set includes operational data.
In some aspects, the operational data includes pH data, dissolved oxygen data, pressure data, temperature data, rpm data, power data, mass data, volumetric flow rate data, density data, or foam content data.
In some aspects, the secondary data set includes device identification data or device state data.
In some aspects, the device identification data includes manufacturer information, manufacture date, model number, serial number, device color, or device version.
In some aspects, the device state data includes device setup data, device configuration data, device calibration data, device power state, or device connectivity state.
In some aspects, the primary data set is sent to the controller more frequently than the secondary data set.
In some aspects, the primary data set is sent to the controller continuously over a time period.
According to some aspects, a method of controlling a process in a bioprocessing system includes receiving, at a control system a primary data set of bioprocess instrument data elements from a primary data registry, receiving, at the control system, a secondary data set of bioprocess instrument data elements from a secondary data registry, comparing, at the control system, an instrument data element of the primary data set to an instrument set point, outputting, by the control system, an instrument control signal based on the result of the comparing step, and sending the control signal to a gateway device in the bioprocessing system.
In some aspects, the primary data registry includes a set of primary data addresses of a first communication protocol that are equal to the number of bioprocess instrument data elements in the primary data set.
In some aspects, the secondary data registry includes a set of secondary data addresses that are less than the number of bioprocess instrument data elements in the secondary data set.
In some aspects, the primary data set is received at the control system more frequently than the secondary data set.
In some aspects, the primary data set is received at the control system continuously over a time period.
In some aspects, the primary data set includes operational data.
In some aspects, the operational data includes pH data, dissolved oxygen data, pressure data, temperature data, rpm data, power data, mass data, volumetric flow rate data, density data, or foam content data.
In some aspects, the secondary data set includes device identification data or device state data.
In some aspects, the device identification data includes manufacturer information, manufacture date, model number, serial number, device color, or device version.
In some aspects, the device state data includes device setup data, device configuration data, device calibration data, device power state, device connectivity state.
Implementations of the current subject matter can include methods consistent with the descriptions provided herein as well as articles that comprise a tangibly embodied machine-readable medium operable to cause one or more machines (e.g., computers, etc.) to result in operations implementing one or more of the described features. Similarly, computer systems are also described that can include one or more processors and one or more memories coupled to the one or more processors. A memory, which can include a non-transitory computer-readable or machine-readable storage medium, can include, encode, store, or the like one or more programs that cause one or more processors to perform one or more of the operations described herein. Computer implemented methods consistent with one or more implementations of the current subject matter can be implemented by one or more data processors residing in a single computing system or multiple computing systems. Such multiple computing systems can be connected and can exchange data and/or commands or other instructions or the like via one or more connections, including a connection over a network (e.g. the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc.
The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims. While certain features of the currently disclosed subject matter are described for illustrative purposes, it should be readily understood that such features are not intended to be limiting. The claims that follow this disclosure are intended to define the scope of the protected subject matter.
The accompanying drawings, which are incorporated in and constitute a part of this specification, show certain aspects of the subject matter disclosed herein and, together with the description, help explain some of the principles associated with the disclosed implementations. In the drawings,
When practical, similar reference numbers denote similar structures, features, or elements.
The various implementations are described more fully hereinafter with reference to the accompanying Figures, which form a part hereof, and which show, by way of illustration, specific examples of the implementations. This disclosure and specification can, however, be embodied in many different forms and should not be construed as limited to the implementations set forth herein; rather, these implementations are provided so that this specification will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, this specification can be embodied as methods or devices. Accordingly, any of the various implementations herein can take the form of an entirely hardware implementation or an implementation combining software and hardware aspects. The following specification is, therefore, not to be taken in a limiting sense.
Bioprocessing control systems include bioprocessing instruments connected and communicating directly with a bioprocess controller, which controls operation of the bioprocessing instruments. Conventional bioprocessing control systems have several drawbacks.
For example, conventional bioprocessing control systems have limited processing power and inefficiently consume power to control operation of the bioprocessing instruments. Conventional bioprocessing control systems also have limited ability to process and distinguish between different types of data, such as higher priority operational data and lower priority instrument data. In particular, conventional bioprocessing control systems generally inefficiently transmit the data along a single pathway to an operational control system without regard to the type of data and limit the manner of communication between bioprocessing instruments and the bioprocess controller, often requiring direct communication between the bioprocess controller and the bioprocessing instruments. In other words, conventional bioprocessing control systems are unable to distinguish between data sets transmitted from a variety of bioprocessing instruments, resulting in an exchange of all of the bioprocessing instrument's data mapped to the designated protocol addresses for one or more transactions involving the particular bioprocessing instrument. Due to the limited customization in data handling and/or processing, conventional bioprocess controllers generally inefficiently send, receive, and/or process all data from the bioprocessing instruments at the same time using a single pathway. Conventional bioprocessing control systems can also call, map and scatter indiscriminate data sets from one or more bioprocessing instruments across multiple levels and categories of communication protocol addresses, resulting in unnecessary processing and load on the bioprocessing control system.
Handling the data in such a manner can lead to operational deficiencies, as the quantity of data processed by the bioprocessing control systems increases rapidly in relation to the number of connected bioprocessing instruments that measure various parameters used for controlling the bioprocessing instruments. Single communication pathways and/or direct connections between the control system and instrument set can cause processing bottle necks as the number of connected instruments, the size of collected parameters and the digitalization of such parameters increases. As a result, conventional bioprocessing instruments are unable to efficiently process the increase in collected data without a large bandwidth allocation, leading to bandwidth issues and improperly controlled bioprocessing instruments. This can lead to significant delays in making necessary changes to the operation of the bioprocessing instruments or to improperly controlled bioprocessing instruments.
Conventional bioprocessing control systems also limit the number of devices physically connected to the bioprocess controller and each physical port of the bioprocess controller. These systems also specify and limit the number of protocol data addresses used to process and store data received from each bioprocessing instrument. For example, in any multi-device bioprocessing control system that communicates using a device-independent communication protocol, specific data from the various bioprocessing instruments can be mapped into the address space of the protocol. Otherwise, the bioprocessing control system will not be able to use the protocol to communicate with the devices in an effective manner. However, a given bioprocessing control system generally places constraints on how protocol addresses (e.g., Modbus addresses) are provisioned for the bioprocessing instruments. In the bioprocessing/bioproduction context, this can create processing inefficiencies and bottlenecks that unnecessarily constrain a bioprocessing control system's capacity and/or its speed at a given utilization level when many instruments are in direct communication with the main control system.
For example, the conventional bioprocessing control systems may designate a preset minimum or maximum number of protocol data addresses for each bioprocessing instrument that connects to it using a specific communication protocol. If each bioprocessing instrument in a many-instrument system communicates directly to such a bioprocessing control system, many more protocol addresses are utilized than is otherwise necessary. For example, the number of unique data elements corresponding to a particular instrument might be limited enough to only require mapping into a small number of protocol addresses (e.g., two, three, or four 16-bit protocol registers). However, bioprocessing control systems often automatically designate ten, or a minimum of ten, protocol addresses (e.g., ten 16-bit Modbus registers) for each instrument that connects to it. In such a situation, an excessive quantity of protocol addresses would be designated for many, or all, of the individual instruments connected to the system.
Such limitations significantly reduce the amount of data that can be processed by the bioprocessing control systems, the speed at which the bioprocessing control systems can process the data for making changes to the operation of the bioprocessing instruments, and the type of data that can be collected and processed. This can be especially problematic as the type of data that can be collected by bioprocessing control systems becomes more complex and diverse, because the conventional bioprocessing control systems would not be equipped to handle such data.
Further, conventional bioprocessing control systems can be expensive to operate because of the manner in which data is processed. For example, conventional bioprocessing control systems inefficiently transmit the data along a single pathway to an operational control system without regard to the type of data. Thus, conventional bioprocessing control systems generally implement one-to-one mapping for all types of data. The one-to-one mapping for all types of data coming from instruments can limit the number of instruments/devices connectable to the controller and/or, in certain circumstances, drastically increase the number of seats, licenses, security measures or other device allocation measures in the network.
The bioprocessing system consistent with implementations of the current subject matter employs an intelligent gateway that interfaces between a bioprocess controller and corresponding bioprocessing instruments to customize and optimize the efficient transmission, storage and processing of data received from bioprocessing instruments. For example, the gateway can receive and handle requests from the bioprocess controller for the data collected from the bioprocessing instruments. Consistent with implementations of the current subject matter, the data handled by the bioprocessing system can, via the gateway, customize handling the data. For example, the data can be prioritized based on a type of the data. In other words, some of the data can be designated as a primary data set and some of the data can be designated as a secondary data set that has a lower priority than the primary data set. Based at least on the priority of the data, the gateway can handle the data differently. For example, the gateway can send the primary data set to the bioprocess controller as a block of primary data. At the same or different time, the gateway can send the lower priority secondary data set to the bioprocess controller in portions.
Thus, the bioprocessing system described herein can reduce a computing load on the bioprocess controller and bioprocessing system and improve the computing efficiency of the bioprocess controller in processing the data and controlling the bioprocessing instruments. Such configurations can additionally and/or alternatively efficiently communicate with a larger and more diverse set of bioprocessing instruments and handle a larger and more diverse set of data. In other words, the bioprocessing system can enable identification, filtration, storage and transmission of a diverse set of data sets collected from bioprocessing instruments based on optimal use of the data sets in controlling and optimizing operation of bioprocessing instruments and biological processes. Additionally and/or alternatively, such configurations can efficiently process data that increases in size and quantity, as well as reduce or eliminate delays in making necessary changes to the operation of the bioprocessing instruments.
Additionally and/or alternatively, the bioprocessing system described herein can exchange a larger set of data sent from distinct bioprocessing instruments for a given set of protocol data addresses available to the system. The gateway can also be configurable to flexibly map instrument data from a plurality of bioprocessing instruments onto a given class and/or set of protocol data addresses used for exchanging data between those instruments and the main control system. Such systems can increase the amount of data and data sets that can be processed by the bioprocessing control systems, the speed at which the bioprocessing control systems can process the data for making changes to the operation of the bioprocessing instruments, and the type of data that can be collected and processed. Such configurations can additionally and/or alternatively increase the number of instruments connectable to the primary control system without an increase in the number of ports, seats, licenses, security measures or other device allocation measures in the network, thereby reducing the cost of operating the bioprocessing system.
Additionally and/or alternatively, the bioprocessing systems described herein can include a plurality of communication and data pathways from the bioprocess controller to a data lake and from the bioprocess controller to an automation control system. Different logic, communication schedules, transmissions frequencies and communication protocols can be implemented for sending bioprocessing data to the data lake compared to sending bioprocessing data to the automation control system, thereby improving the customizability and efficiency of the bioprocessing system.
Additionally and/or alternatively, the bioprocessing system described herein can handle various types of representations of data. For example, the gateway can receive a data set in a particular representation (e.g., unit of measurement). The gateway can convert the representation into another representation (e.g., another unit of measurement) that can be sent to and processed by the bioprocess controller.
Each of the plurality of bioprocess controllers 131, 132, 133, 134 can include a corresponding gateway and instrument control board. For example, the bioprocess controller 131 includes a gateway 101 and an instrument control board 171, the bioprocess controller 132 includes a gateway 102 and an instrument control board 172, the bioprocess controller 133 includes a gateway 103 and an instrument control board 173, and the bioprocess controller 134 includes a gateway 104 and an instrument control board 174. The gateways 101, 102, 103, 104 can include at least one processor and at least one memory storing instructions configured to perform one or more operations as described herein. Although
The gateways 101, 102, 103, 104 communicate with the control system 120 through one or more control system communication links 151, 121. For example, the gateways 101, 102, 103, 104 can include the control system communication link 151 and the control system 120 can include the communication link 121. The control system communication links 151, 121 and/or the instrument communication link 141 can include any wired and/or wireless network including, for example, a wide area network (WAN), a local area network (LAN), a virtual local area network (VLAN), a public land mobile network (PLMN), the Internet, and/or the like.
The gateways 101, 102, 103, 104 can communicate with the instrument control boards 171, 172, 173, 174 and the bioprocessing instrument sets 111, 112, 113, 114 through an instrument communication link (e.g., an instrument communication link 141). The instrument control boards 171, 172, 173, 174 can communicate with bioprocessing instrument sets 111, 112, 113, 114 through similar communication links shown as arrows in
Through gateways 101, 102, 103, 104, the control system 120 exchanges data with the instrument control boards 171, 172, 173, 174, which in turn exchange data with the bioprocessing instruments sets 111, 112, 113, 114. The bioprocessing instruments sets 111, 112, 113, 114 can include one or more bioprocessing instruments. The one or more bioprocessing instruments include, but are not limited to, one or more agitators, temperature control units, sensors, scales, motors, valves, pumps, fermenters, rocking bioreactors, stirred tank reactors, mixers, chromatography systems, centrifugal separators, and/or other bioprocessing instruments. Additional bioprocessing instruments and configurations are illustrated in
In some implementations, the gateways 101, 102, 103, 104 communicate with a data lake 190 through a data lake communication link (e.g., data lake communication link 161). For example, as shown in
In some implementations, all data from bioprocess controllers 131, 132, 133, 134 can first be sent from the gateways 101, 102, 103, 104 to the control system 120, which can then communicate data for analytics purposes to the data lake 190. Data can also be sent directly from bioprocess controllers 131, 132, 133, 134 to the data lake 190 for analytics. The data lake 190 can act as a data aggregator and/or a repository for data received from the gateways 101, 102, 103, 104, the control system 120 and/or other bioprocessing systems (not shown), and the data lake 190 can perform data aggregation, analytics and other data processing functions that can relieve load from the control system 120 and improve the efficiency and accuracy of process controls. For example, sending data directly from bioprocess controllers 131, 132, 133, 134 through the gateways 101, 102, 103, 104 and data lake communication links (e.g., data lake communication link 161) to the data lake 190 for analytics can reduce processing loads on the control system 120. The data lake 190 can also perform operations on data sent from bioprocessing instrument sets 111-114, such as converting units of measurement or converting data into a different format readable by the control system 120.
As described in more detail below, the data can include one or more data elements, such as “instrument data elements.” As used herein, an “instrument data element” (or “ide”) refers to a particular segment of data corresponding to a specific bioprocessing instrument or parameter of the bioprocessing instrument in the bioprocessing system 1000.
The data can be received by the gateways 101, 102, 103, 104 and sent to the data lake 190 and/or the control system 120 based on a type of the data, an intended use of the data, a priority level of the data and/or a frequency of data transmission for analytics processing and/or for controlling at least one of the bioprocessing instruments. This can help to increase efficiency of communicating the data and to reduce a load on the control system 120. In some implementations, the data is tagged with the intended use, the priority level, and/or the frequency of data transmission. The tag can be predetermined and/or automatically determined by the bioprocessing system 1000 (e.g., the gateways 101, 102, 103, 104 or another component). Based on the type of the data, the intended use of the data, the priority level of the data, and/or the frequency of data transmission, the data can be sent as a block and/or as a portion. Thus, it can appear that certain data is sent more quickly and/or frequently to the control system 120 relative to the data lake 190 or other components of the bioprocessing system 1000.
The data can include at least one primary data set, at least one secondary data set, at least one tertiary data set, and the like. The data can be tagged as being part of the at least one primary data set, the at least one secondary data set, the at least one tertiary data set, and the like. Depending on whether the data is tagged as being part of the at least one primary data set, the at least one secondary data set, the at least one tertiary data set, the data can have a different priority level, or the like. For example, the at least one primary data set has a higher priority than the at least one secondary data set, the at least one secondary data set has a higher priority than the at least one tertiary data set, and so on. In other words, the at least one secondary data set has a lower priority than the at least one primary data set, the at least one tertiary data set has a lower priority than the at least one secondary data set, and so on. In one example, the primary data set includes sensor data (e.g., rpm data from an accelerometer), or sensor data from a pressure, flow, temperature, conductivity, pH, dissolved O2, cell density, glucose and/or foam sensor. In this example, the secondary data set is the type of sensor, and the tertiary data set is a name, code-name, serial number, color or distinguishing physical feature associated with the sensor. In another example, the primary data set can include, but is not limited to sensor data; rpm data from an agitator or impeller; temperature data from a thermocouple; mass data from a scale; rpm data from a motor shaft; configuration data (open/closed) from a valve; power data from a pump; pH data of a biological culture within a fermenter, conductivity data from a biological culture within a bioreactor; glucose concentration data from a biological culture within a bioreactor; rpm or power data from a mixer, liquid flow rate data from a column of a chromatography system, rpm data of a centrifugal separator; and/or product composition data from the outlet of a fermenter, bioreactor, mixer, centrifugal separator or column of a chromatography system. The secondary data set can include, but is not limited to sensor type, agitator type, fermenter volume or dimensions, bioreactor volume or dimensions, mixer type, bioreactor type, fermenter type, volume or dimensions of a centrifugal separator, and/or dimensions or number of columns of a chromatography system. Tertiary data can include, but is not limited to name, code-name, serial number, color or distinguishing physical feature of an agitator, mixer, ferment, bioreactor, centrifugal separator and/or chromatography system. In these examples, the primary data set fluctuates and varies dynamically throughout the course of the biological process and is vital for assessing process parameters and controlling the biological process with the control system 120. In these examples, the secondary data set is constant and necessary for assessing process parameters and controlling the biological process with the control system 120. In these examples, the tertiary data set is constant and identifying data for the instrument. The data is processed, stored and transmitted by the gateways 101, 102, 103, 104 based on priority prior to the data reaching the control system 120.
The primary data set, as described in more detail below, can include a block of primary data, which can be measured by the plurality of bioprocessing instruments of the bioprocessing system 1000. The primary data set can include primary data such as a plurality of parameters measured by the plurality of bioprocessing instruments that impact operation of at least one of the bioprocessing instruments. In other words, the primary data set includes operational data used for detecting and implementing process parameters that control operation of the plurality of bioprocessing instruments (e.g., of the bioprocessing instrument sets 111, 112, 113, 114). The primary data set can include primary data that is likely to change. The primary data set can include data such as a pump power, a motor speed, rotations per minute of an impeller, sensor data, pressure readings, flow rate readings, pH readings, temperature readings, proximity sensor readings, valve positions and configurations, dissolved oxygen readings, carbon dioxide readings, foam sensor readings, cell density readings, a weight, other process and bioreactor parameters, and/or the like.
The primary data set can be measured by the plurality of bioprocessing instruments and used by the control system to control operation of the bioprocessing instruments. The primary data set can additionally and/or alternatively include data that is likely to quickly change. Thus, the primary data set can be tagged with a higher priority level than the secondary data set and/or the tertiary data set. At least because the primary data set has a higher priority level than the secondary data set and/or the tertiary data set, the primary data set can be exchanged between the gateway 101 and the control system 120 as a block of primary data. This allows for all of the primary data to be exchanged since the time primary data was previously retrieved from the plurality of bioprocessing instruments and/or exchanged between the gateway 101 and the control system 120.
The secondary data set can include secondary data, such as instrument data associated with the plurality of bioprocessing instruments. In some implementations, the secondary data set does not impact operation of the plurality of bioprocessing instruments. The secondary data set can include secondary data, such as instrument information about at least one of the plurality of bioprocessing instruments. The secondary data set can be unlikely to change during operation of the plurality of bioprocessing instruments. The secondary data set can include device identification data or device state data. Device identification data can include, but is not limited to, information identifying manufacturer of equipment, manufacture date, model, serial number, device color, version of a device or other information identifying the device. Device state data can include, but is not limited to, device setup data, device configuration data, device calibration data, data indicating whether the device is powered on or off, data indicating whether the device is online and connected to a communication network or offline and disconnected from a communication network and/or other device state data.
Because the secondary data set can include instrument data that does not impact operation of the plurality of bioprocessing instruments, the secondary data set can be tagged with a lower priority than the primary data set. In some implementations, due to the lower priority level of the secondary data set, the secondary data set can be exchanged between the plurality of bioprocessing instruments, the gateways 101, 102, 103, 104, the control system 120, the data lake 190, or the like, less frequently, in smaller portions, or the like than the primary data set.
This data set can also be categorized as tertiary data as described above depending on configurations and customizations set by the operator or end-user. For example in some implementations, the secondary data set can be further tagged and categorized into a tertiary data set and/or a quaternary data set based on data type, intended use, priority, transmission frequency, and/or timing rules governing the exchange of process control data between the bioprocessing instrument sets 111, 112, 113, 114, the gateways 101, 102, 103, 104, the control system 120, and/or the data lake 190. The tertiary data set and/or the quaternary data set can be exchanged less frequently and/or in smaller portions than the secondary data set and primary data set.
While the primary data set is described herein as impacting operation of at least one of the plurality of bioprocessing instruments, in some implementations, certain secondary data sets can also be used as the primary data set including operational data processed by the control system 120 to send a control signal to at least one of the plurality of bioprocessing instruments or to cause and direct an instrument response to a specific piece of equipment. As an example, device color can be both part of the secondary data set for identifying the bioprocessing instrument and the primary data set that impacts operation of the bioprocessing instrument. For example, the device color can be processed by the control system 120 to then apply power to a corresponding color LED light on the control system 120 display, interface or hardware at the gateway 101, 102, 103, 104 display, interface or hardware. Likewise, a device power state can be part of both the secondary data set and the primary data set, because it can be used as a status indicator and by the control system 120 to apply power to the particular bioprocessing instrument.
Referring to
Again referring to
The illustrated implementation shows just one example. Alternative implementations vary the components and connection paths shown without necessarily departing from the spirit and scope of the present disclosure. For example, some elements shown housed within the bioprocess controller 131 might, in alternative implementations, be external to a bioprocess controller, such as the bioprocess controller 131. Conversely, some instruments shown as part of the external instrument set 111 might, in alternative implementations, be incorporated into a bioprocess controller, such as the bioprocess controller 131.
As shown, the gateway 101 and the control system 120 communicate through a connection between the communication link 151 at the gateway 101 and the communication link 121 at the control system 120.
At the application-layer level (and/or other layers) of the Open Systems Interconnect (“OSI”) model, the control system 120 and the gateway 101 communicate using a protocol suited for automated systems. A commonly used protocol is Modbus. Modbus has evolved into different protocol “suites” that package Modbus's application-layer rules together with protocols in other OSI layers for different implementations. For example, “Modbus RTU” can be adapted to work over serial connections such as RS-232 or RS-485. As another example, “Modbus TCP/IP” works over Ethernet connections.
The underlying principles of the bioprocessing system 1000 are generally independent of any specific protocol and or physical connection type. Implementations of the current subject matter can be applied to and implement any communication protocol used in a bioprocessing system where the protocol designates a set of data addresses (or the equivalent thereof) for identifying data (e.g., the primary data set, the secondary data set, etc.) exchanged using the protocol. Therefore, for ease of explanation, reference will be made herein to a “communication protocol address.” The illustrated examples will be explained with some terminology corresponding to the Modbus protocol. However, the principles of the current subject matter apply to many alternative implementations using other communication protocols in which data address are defined and used for communications between devices and systems.
The Modbus data model provides for data that is addressable in single-bit size and data that is addressable in 16-bit size. Modbus uses the label “Holding Register” to designate a data address of a 16-bit word that can be either write data or read data. For convenience of the example illustrated herein, protocol addresses “R1-R300” are referenced. This does not follow the full numbering format of Modbus Holding Registers. However, for ease of reference in the context of the particular example illustrated herein, “R1-R300” refers to 300 different data addresses (i.e., R1, R2, R3 . . . . R300) corresponding to Modbus “registers,” each register addressing a 16-bit word of data.
In the examples illustrated herein, each instrument data element is assigned a data address within the relevant communication protocol (e.g., Modbus) used to exchange data between instruments on the one hand and the control system on the other hand. In one example, for a given protocol address (e.g., “R1,” “R2”, etc.), one instrument data element is transmitted from the bioprocess controller to the control system. If each data address is used to address a 16-bit data element, then each instrument data element is transmitted/received as a 16-bit word.
With reference to
The primary read mapping 401 and the primary write mapping 402 each use a “one-to-one” mapping of communication protocol addresses to instrument data elements. For example, the block of primary data of the primary data set can include a first parameter measured by at least one of the plurality of bioprocessing instruments, a second parameter measured by at least one (e.g., the same or another one) of the plurality of bioprocessing instruments, and so on. In this example, the first parameter can be mapped to a first communication protocol address and the second parameter can be mapped to a second communication protocol address. In some implementations, primary data from each of the plurality of bioprocessing instruments is mapped a unique communication protocol address. For example, the primary read mapping 401 can map 150 different instrument data elements (ide1-ide150) (e.g., parameters measured by the plurality of bioprocessing instruments) to 150 different communication protocol addresses (R1-R150). The primary write mapping 402 can map 50 different instrument data elements (ide151-ide200) (e.g., parameters measured by the plurality of bioprocessing instruments) to 50 different communication protocol data addresses (R201-R250). While other quantities are contemplated, the quantity of the primary data in the primary data set (e.g., the quantity of bioprocessing instruments, parameters measured by the plurality of bioprocessing instruments, and/or the like) can be the same as the quantity of communication protocol addresses.
The secondary read mapping 403 and the secondary write mapping 404 each use a many-to-one mapping of instrument data elements (e.g., the secondary data set) to communication protocol data addresses. For example, a portion of the secondary data set can include secondary data corresponding to at least two of the plurality of bioprocessing instruments. The portion of the secondary data set can be mapped to a single communication protocol address.
In some implementations, the secondary data set is stored across a plurality of pages. For example, the secondary read mapping 403 and the secondary write mapping 404 assign an identifier, such as a page number of a plurality of pages to a portion of the secondary data set, such as different data elements (e.g., the secondary data set) that share the same communication protocol address. The portion of the secondary data set can include secondary data from a plurality of bioprocessing instruments. The term “page” as used herein is an identifier used to identify the page of the plurality of pages. For example, the identifier can be used externally to the communication protocol (e.g., Modbus or other relevant communication protocol), such as in locations in an expanded data address space that allows a many-to-one mapping between instrument data elements and communication protocol addresses defined within the relevant communication protocol (e.g., Modbus or other relevant communication protocol). Accordingly, the secondary data set can include a plurality of portions that are exchanged between the gateway 101 and the control system 120. Each of the portions can include secondary data from a plurality of bioprocessing instruments (e.g., at least two bioprocessing instruments) and can be mapped to a single communication protocol address.
As an example, the secondary read mapping 403 can use twelve different page numbers (e.g., identifiers) to map twelve pages of secondary data across a given set of read communication protocol addresses. A page number corresponding to requested read data (e.g., instrument data that the control system 120 requests be sent to it from gateway 101) is sent from the control system 120 to the gateway 101 using communication protocol address R251. When the gateway 101 replies by sending the requested secondary data set to control system 120, the gateway 101 uses communication protocol address R151 to send the page number (e.g., identifier) corresponding that data.
In this example, communication protocol addresses R153-R200 can be used to send the requested data from the gateway 101 to the control system 120. Therefore, for each page number of data requested and sent, the gateway 101 can include 48 different data elements using the 48 communication protocol addresses R153-R200. Therefore, in this example, the mapping 403 enables 576 instrument data elements (ide201-ide776) to be sent using 48 communication protocol addresses by identifying and sending data corresponding to different defined pages for those protocol addresses. Of course, the use of twelve pages of data is only one example. More or fewer pages can be defined depending on how many unique secondary instrument read data elements correspond to a given bioprocessing instrument set in a given bioproduction or bioprocessing system.
In similar fashion, the secondary write mapping 404 uses three different page numbers to map three pages of secondary write data across a given set of communication protocol addresses. Page numbers (e.g., identifiers) corresponding to the secondary write data (e.g., instrument data that the control system 120 requests be written to instruments connected to the bioprocess controller 131) are sent from the control system 120 to the gateway 101 using communication protocol address R252. The gateway 101 replies by sending the page number of the write data back to the control system 120 using the protocol data address R152 to confirm the page number (e.g., identifier) of write data received.
In this example, the protocol data addresses R253-R300 are used to send instrument secondary write data from the control system 120 to the gateway 101. For each page number of the secondary write data sent, 48 different instrument data elements can be included using the 48 communication protocol addresses R253-R300. Therefore, in this example (with three pages), the mapping 404 enables 144 instrument secondary write data elements (ide777-ide920) to be sent from the control system 120 to the gateway 101 using 48 data addresses by identifying and sending data corresponding to different defined pages for those protocol addresses. Of course, the use of three pages of data is only one example. More or fewer pages can be defined depending on how many unique secondary instrument write data elements correspond to a given bioprocessing instrument set in a given bioproduction or bioprocessing system.
Referring back to
The data requested by the control system 120 can include a primary data set and/or a secondary data set, consistent with implementations of the current subject matter. Consistent with implementations of the current subject matter, the primary data set includes a block of primary data measured by the plurality of bioprocessing instruments. As described herein, the primary data set (e.g., the block of primary data) includes operational data associated with the plurality of bioprocessing instruments. The operational data can include at least one parameter (e.g., a first parameter, a second parameter, a third parameter, and so on) measured by the plurality of bioprocessing instruments that impacts operation of at least one of the plurality of bioprocessing instruments. Consistent with implementations of the current subject matter, the secondary data set has a lower priority (which can be predetermined and/or tagged with the secondary data set) than the primary data set. As described herein, the secondary data set can be stored across a plurality of pages. For example, an identifier, such as a page or page number can be associated with a portion of the secondary data set. The secondary data set includes instrument data associated with the plurality of bioprocessing instruments. The instrument data can include instrument information about at least one of the plurality of bioprocessing instruments.
Referring to
At 604, the gateway 101 can receive and/or handle the request from the controller of the control system 120. The gateway 101 can retrieve the requested data from the plurality of bioprocessing instruments. To retrieve the requested data, the gateway 101 can poll the plurality of bioprocessing instruments to request the data. The gateway 101 can poll, at 606, the plurality of bioprocessing instruments at regular and/or predetermined intervals (e.g., every 5 seconds, 10 seconds, 30 seconds, minute, 10 minutes, 30 minutes, hour, and/or the like). The gateway 101 can then store the data in memory of the gateway 101 until the gateway 101 receives the request at 604. Additionally and/or alternatively, the gateway 101 can poll, at 606, the plurality of bioprocessing instruments for the data in response to receiving the request at 604.
At 608, the plurality of bioprocessing instruments sends the data to the gateway 101 in response to the poll at 606. In some implementations, both primary data and secondary data is sent from the bioprocessing instruments to the gateway 101 in response to each poll. In other implementations, only primary data is sent from the bioprocessing instruments to the gateway 101, such as when there have been no updates to the secondary data from the previous poll.
At 610, the gateway 101 stores the data received from the plurality of bioprocessing instruments in the memory of the gateway 610. The gateway 101 can store the primary data set in a primary data register. When storing the primary data set, the gateway 101 can map a unique communication protocol address to each parameter measured by the plurality of bioprocessing instruments and/or to each bioprocessing instrument of the plurality of bioprocessing instruments. This allows for one-to-one mapping of the primary data set, as described herein.
The gateway 101 can additionally and/or alternatively store the secondary data set in a secondary data register. When storing the secondary data set, the gateway 101 can map a single communication protocol address to a portion of the secondary data set that corresponds to at least two of the bioprocessing instruments of the plurality of bioprocessing instruments. This allows for one to many mapping of the secondary data set, as described herein. The gateway 101 can assign an identifier (e.g., a page number N of a plurality of pages) to a corresponding portion of the secondary data.
Again referring to
At 612, the gateway 101 sends, in response to the request, the requested data to the controller of the control system 120. The gateway 101 sends the primary data set as a block of primary data, as described herein. The block of primary data includes the primary data collected from and/or measured by the plurality of bioprocessing instruments since a previous request was received and handled by the gateway 101. The primary data set is sent as a block of primary data to the control system 120 due at least in part to the high priority level of the primary data set. The gateway 101 can cause the controller of the control system 120 to control at least one bioprocessing instrument of the plurality of bioprocessing instruments by sending the block of primary data to the control system 120. For example, as described herein, the control system 120 can use the block of primary data to adjust one or more operations and/or control at least one of the bioprocessing instruments.
At 612, the gateway 101 further sends the requested portion of the secondary data set to the control system 120. In other words, the gateway 101 sends the requested portion of the secondary data set to which the page number N included in the request is assigned. This helps to reduce the load on the controller of the control system 120 and/or the bioprocess controller 131 as less data is sent from the gateway to the control system 120 and less data is processed by the control system 120 at the same time as the control system 120 is processing the higher priority block of primary data. This can additionally and/or alternatively reduce the computer power needed to process the request because fewer communication protocol addresses are needed to exchange the secondary data set. The portion of the secondary data set can be sent from the gateway 101 to the control system 120 during the sending of the block of primary data from the gateway 101 to the control system 120.
At 614, the control system 120 receives the data from the gateway 101 in response to the request. For example, the control system 120 can receive the block of primary data. The control system 120 can additionally and/or alternatively receive the portion of the secondary data set, thereby reducing a processing load on the controller of the control system 120. The control system 120 can receive the portion of the secondary data set during the receiving of the block of primary data.
Referring back to
As an example, a primary data received a particular sensor can be, based on the relevant mapping between that sensor read data and the communication protocol address used to send the data to the control system 120, stored by the primary data input module 701 in a relevant memory array designated for that the sensor read data. The sensor read data is then read by the relevant control module of instrument control modules 702 corresponding to that sensor. When the instrument control modules 702 writes primary data to the bioprocess controller 131, the instrument control modules 702 writes the primary data to a relevant memory array for data mapped to the corresponding protocol (e.g., Modbus or other protocol) registers and the primary data output module 703 sends the data to the bioprocess controller 131 via the communication link 121 using those registers. In this example, all primary data elements (e.g., the primary data) are mapped on a one-to-one basis to communication protocol data addresses and, therefore, page numbers may not be used, as described herein.
By contrast, secondary data sets are mapped using identifiers (e.g., page numbers) in addition to communication protocol addresses and can be handled by the secondary paged data control module 704. When secondary read data of the portion of the secondary data set is received through the communication link 121, the secondary paged data control module 704 uses the received page number and the relevant protocol addresses to write the secondary data set to an appropriate array in working memory of the control system 120 accessed by the relevant one or more control modules of instrument control modules 702. Similarly, when secondary write data is sent by one or more of the control modules 702 from the control system 120 to the bioprocess controller 131 (e.g., for writing to a corresponding instrument or instrument control board), the secondary paged data control module 604 uses the relevant page number to send the instrument data elements corresponding to that page number and the relevant protocol registers using the relevant protocol registers for transmission in accordance with the communication protocol.
Referring again to
At 803, the control system 120 (e.g., via the controller of the control system 120) determines whether the value of N corresponding to the portion of the secondary data set received by the control system 120 is equal to a maximum value of N, i.e., a value corresponding to the total number of pages designated for secondary read data of the secondary data set. If the value of N does not correspond to the maximum value of N, at 804, the value of Nis incremented by 1 and the flow returns to 801, where additional requests are sent from the control system 120 to the gateway 101, as described in more detail below. If the value of N does correspond to the maximum value of N, at 805, the value of N is reset to 1, as all of the pages (e.g., all of the portions) of the secondary data set have been received by the control system 120.
In the illustrated process 800, different pages of secondary read data (e.g., the secondary data set) that are mapped using the same Modbus registers are simply requested and read one-after-the-other in round-robin fashion. This results in a plurality of second requests as described in more detail below. However, in alternative implementations, additional logic and load balancing methods can be introduced to determine which page number of data to request and receive in the current communication transaction cycle. Also, in alternative implementations, data can be further divided based on relative priority. For example, some data could be designated as “tertiary” data and handled by a separate processing flow that requests and receives tertiary data less frequently or in smaller or larger portions (e.g., by introducing longer intentional delays between request/read cycles) than the secondary data (which in turn is requested and read less frequently or in smaller portions than primary data).
Referring back to
Referring back to
At 618, the gateway 101 can receive the second request for the data associated with the plurality of bioprocessing instruments. The gateway 101 can handle the second request in the same manner as the request received at 604. For example, the gateway 101 can retrieve the requested data from the plurality of bioprocessing instruments. To retrieve the requested data, the gateway 101 can poll the plurality of bioprocessing instruments to request the data. The gateway 101 can poll, at 606, the plurality of bioprocessing instruments at regular and/or predetermined intervals (e.g., every 5 seconds, 10 seconds, 30 seconds, minute, 10 minutes, 30 minutes, hour, and/or the like). The gateway 101 can then store the data in memory of the gateway 101 until the gateway 101 receives the second request at 618. In this example, the stored data can be the data retrieved since the first request was handled at 604. Additionally and/or alternatively, the gateway 101 can poll, at 620, the plurality of bioprocessing instruments for the data in response to receiving the second request at 618.
At 622, the plurality of bioprocessing instruments sends the data to the gateway 101 in response to the poll at 620. In some implementations, both primary data and secondary data is sent from the bioprocessing instruments to the gateway 101 in response to each poll. In other implementations, only primary data is sent from the bioprocessing instruments to the gateway 101, such as when there have been no updates to the secondary data from the previous poll.
At 624, the gateway 101 stores the data received from the plurality of bioprocessing instruments in the memory of the gateway 101, in the same manner as at 610.
At 626, the gateway 101 sends, in response to the second request, the requested data to the controller of the control system 120. The gateway 101 sends the primary data set as a second block of primary data, as described herein. The second block of primary data includes the primary data collected from and/or measured by the plurality of bioprocessing instruments since a previous request (e.g., the request handled at 604) was received and handled by the gateway 101. The primary data set is sent as a second block of primary data to the control system 120 due at least in part to the high priority level of the primary data set. The gateway 101 can cause the controller of the control system 120 to further control at least one bioprocessing instrument of the plurality of bioprocessing instruments by sending the second block of primary data to the control system 120. For example, as described herein, the control system 120 can use the second block of primary data to further adjust one or more operations and/or control at least one of the bioprocessing instruments.
At 626, the gateway 101 further sends the requested second portion of the secondary data set to the control system 120. In other words, the gateway 101 sends the requested second portion of the secondary data set to which the page number N (e.g., the page number following the page number Nat 612; see
At 628, the control system 120 receives the data from the gateway 101 in response to the second request. For example, the control system 120 can receive the second block of primary data. The control system 120 can additionally and/or alternatively receive the second portion of the secondary data set, thereby reducing a processing load on the controller of the control system 120. The control system 120 can receive the second portion of the secondary data set during the receiving of the second block of primary data.
In some implementations, the control system 120 can write data to the gateway 101. In some implementations, the data written to the gateway 101 includes the identifier (e.g., page number) associated with the page N of the portion of the secondary data set requested by the control system 120. Additionally and/or alternatively, the data written to the gateway 101 can include one or more control signals for controlling at least one of the bioprocessing instruments. The gateway 101 can handle the data writing for the page number and the control signal in a similar manner.
At 903, the control system 120 (e.g., via the controller of the control system 120) determines whether the value of N corresponding to the portion of the secondary data set being written by the control system 120 is equal to a maximum value of N, i.e., a value corresponding to the total number of pages designated for secondary write data of the secondary data set. If the value of N does not correspond to the maximum value of N, at 904, the value of Nis incremented by 1 and the flow returns to 901, where additional data is written by the control system 120 to the gateway 101, as described in more detail below. If the value of N does correspond to the maximum value of N, at 905, the value of N is reset to 1, as all of the pages (e.g., all of the portions) of the secondary data set have been sent by the control system 120.
Referring back to
At 632, the gateway 101 can write the received write data to the gateway 101 and/or direct the control signal to the at least one bioprocessing instrument. For example, the gateway 101 can, at 632, write the control signal to memory of the gateway 101 or to the control boards that control the relevant instruments, for sending to the bioprocessing instruments and/or can directly transmit the control signal to the bioprocessing instruments.
Further,
The code or a copy of the code contained in computer program product 1160 can reside in one or more storage persistent media (not separately shown) communicatively coupled to system 11000 for loading and storage in persistent storage device 1170 and/or memory 1110 for execution by processor 1120. Computer system 11000 also includes I/O subsystem 1130. I/O subsystem 1130, processor 1120, memory 1110, and persistent storage device 1170 are coupled via bus 1150. Like persistent storage device 1170 and any other persistent storage that might contain computer program product 1160, memory 1110 is a non-transitory media (even if implemented as a typical volatile computer memory device). Moreover, those skilled in the art will appreciate that in addition to storing computer program product 1160 for carrying out processing described herein, memory 1110 and/or persistent storage device 1170 can be configured to store the various data elements referenced and illustrated herein.
Those skilled in the art will appreciate computer system 11000 illustrates just one example of a system in which a computer program product in accordance with an implementation of the present disclosure can be implemented. To cite but one example of an alternative implementation, execution of instructions contained in a computer program product in accordance with an implementation of the present disclosure can be distributed over multiple computers, such as, for example, over the computers of a distributed computing network.
While the present exemplary implementations have been described in detail with respect to the illustrated implementations, it will be appreciated that various alterations, modifications, and/or adaptations can be made based on the present disclosure and are intended to be within the scope of the exemplary implementations and present invention. While the invention has been described in connection with what are presently considered to be the most practical and preferred implementations, it is to be understood that the present invention is not limited to the disclosed implementations but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the scope of the underlying principles of the invention as described by the various implementations referenced herein.
The present application claims priority to U.S. Provisional Application No. 63/244,866, filed Sep. 16, 2021, and entitled “Bioprocess Controller with Intelligent Gateway,” the entirety of which is incorporated by reference herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2022/041104 | 8/22/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63244866 | Sep 2021 | US |