TRAIN SYSTEM HAVING MALFUNCTION-BASED TRIP SIMULATION
A system is disclosed for use in simulating operation of a train. The system may have at least one sensor configured to generate a signal indicative of an operating status of a component of the train during completion of an assigned trip. The system may also have a display, and a controller in communication with the at least one sensor and the display. The controller may be configured to retrieve from memory first data associated with the assigned trip, and retrieve from memory second data associated with the train. The controller may be further configured to simulate completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning, and to cause simulation results to be shown on the display.
Latest ELECTRO-MOTIVE DIESEL, INC. Patents:
The present disclosure relates generally to a train system and, more particularly, to a train system having malfunction-based trip simulation.
It is not uncommon for a train to experience a component malfunction during completion of a trip. If the malfunction causes a delay in the trip or, in extreme situations, causes the trip to abort, a significant financial penalty can occur. For example, a coal-bearing train that is late to port or does not arrive in port could cause a waiting barge to delay its departure or to leave only partially laden. A departure delay or load reduction increases operating costs and reduces productivity.
In most situations, when a component malfunction occurs onboard a train, the train is shut down so that the malfunction can be evaluated. The evaluation is carried out manually, with the result being to continue the trip as-is, to abort the trip, or to make a repair or adjustment to the train so that the trip may continue. Although this method may be acceptable in some situations, it is also labor-intensive, slow, and error-prone, and could possibly result in unnecessary pauses in the train's progress.
A method of optimizing train operation is described in U.S. Pat. No. 6,587,764 of Nickles et al. that issued on Jul. 1, 2003 (“the '764 patent”). Specifically, the method described in the '764 patent includes determining a location of a train, a profile of a track to be traversed by the train, current conditions of the train, operational constraints, a dynamic interaction between cars of the train, and a goal for the train. The method further includes performing calculations based on the goal, the location, the track profile, the current conditions, and the dynamic interaction to simulate throttle and brake settings that best achieve the goal at the current location and over the ensuing track profile. The settings are then displayed in real-time inside a locomotive of the train and/or are automatically implemented so as to optimize the performance of the train.
While the method disclosed in the '764 patent may improve operation of a fully functional train, it may still be less than optimal. In particular, the method does not address malfunctions of train components, or how to determine if, when, or how a train can complete an assigned trip given the malfunctions. In addition, the method discloses adjustments that can only be made to throttle settings and brakes in order to achieve the goal.
The disclosed train system is directed to overcoming one or more of the problems set forth above.
SUMMARYIn one aspect, the present disclosure is directed to a system for simulating operation of a train. The system may include at least one sensor configured to generate a signal indicative of an operating status of a component of the train during completion of an assigned trip. The system may also include a display, and a controller in communication with the at least one sensor and the display. The controller may be configured to retrieve from memory first data associated with the assigned trip, and retrieve from memory second data associated with the train. The controller may be further configured to simulate completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning, and to cause simulation results to be shown on the display.
In another aspect, the present disclosure is directed to another system for simulating operation of a train. This system may include at least one sensor mountable onboard the train and configured to generate a signal indicative of an operating status of a component of the train during completion of an assigned trip, and a display located offboard the train. The system may further include a controller in communication with the at least one sensor and the display. The controller may be configured to retrieve from memory first data associated with the assigned trip, and to retrieve from memory second data associated with the train. The controller may also be configured to receive input indicative of a goal for the train associated with the assigned trip, and to simulate completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning. The controller may be further configured to make a comparison of simulation results with the goal, and to show on the display an indication regarding a successful outcome for the remainder of the assigned trip based on the comparison.
In yet another aspect, the present disclosure is directed to a method of simulating operation of a train. The method may include generating a signal indicative of an operating status of a component of the train during completion of an assigned trip, retrieving from memory first data associated with the assigned trip, and retrieving from memory second data associated with the train. The method may further include simulating completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning, and displaying results of the simulating.
Each locomotive 12 may be connected to an adjacent locomotive 12 and/or to tender car 14 in several different ways. For example, locomotives 12 and tender car 14 may be connected to each other via a mechanical coupling, one or more fluid couplings, and one or more electrical couplings. These couplings are represented together by a single coupling 16 in
Each locomotive 12 may include a car body 18 supported at opposing ends by a plurality of trucks 20 (e.g., two trucks 20). Each truck 20 may be configured to engage a track 22 via a plurality of wheels 24, and to support car body 18. Each truck 20 may have two or more axles that are each configured to rigidly support wheels 24 at opposing ends thereof, such that wheels 24 and the axles rotate together. A traction motor 25 may be disposed at a lengthwise center of each axle, connected to an associated truck 20, and configured to drive paired wheels 24 via the axle.
Any number of engines 26 may be mounted to car body 18 and drivingly connected to a generator 28 to produce electricity that propels wheels 24 of each truck 20 via traction motors 25. Engines 26 may be internal combustion engines configured to combust a mixture of air and fuel. The fuel may include a liquid fuel (e.g., diesel) provided to engines 26 from a tank 30 located onboard each locomotive 12, a gaseous fuel (e.g., natural gas) provided by tender car 14 via the fluid couplings, and/or a blended mixture of the liquid and gaseous fuels.
Tender car 14, like locomotives 12, may also be equipped with a body 18 that is supported by two or more trucks 20. Tender car 14 may further include one or more tanks 32 mounted to body 18 that are configured to store liquefied gaseous fuel (e.g., liquefied natural gas or LNG). The liquefied gaseous fuel may be gasified and then fed in series or parallel to all locomotives 12 of train 10 for combustion within engines 26. In the disclosed embodiment, a single insulated tank 32 is used to store the liquefied gaseous fuel at low temperatures, such as below about −160° C. In some embodiments, tank 32 may be integral with body 18 of tender car 14.
Additional fuel delivery components (not shown) may be associated with tender car 14 and used to gasify and/or transport the fuel from tender car 14 to locomotives 12. These components may include, among other things, one or more fuel pumps, one or more heat exchangers, one or more accumulators, one or more regulators, and associated conduits that condition, pressurize or otherwise move fuel, as is known in the art. The pump(s) may pressurize the liquefied gaseous fuel to a desired operating pressure and push the fuel through the heat exchanger(s) to the accumulator(s). The heat exchanger(s) may provide heat sufficient to gasify the fuel as it moves therethrough. Upon vaporization, the fuel may be transported to and stored within the accumulator(s). Gaseous fuel may then be directed from the accumulator(s) to engines 26 via the regulator(s).
As also shown in
Any number of sensors 38 may be included within system 36, and associated with any component of any part of train 10. For example, one or more sensors 38 could be associated with engine 26 and configured to monitor a cylinder pressure, an oil pressure, a fuel pressure, a water temperature, an exhaust temperature, an intake air pressure or temperature, a speed, a vibration level, etc., and to generate corresponding signals. In another example, one or more sensors 38 could be associated with each traction motor 25, with each wheel 24 (e.g., with a bearing of each wheel 24), with generator 28, with tank 30, with tank 32 (and/or with the other fuel handling components of tender car 14), with coupling 16, etc., and configured to generate corresponding pressure signals, temperature signals, speed signals, or other types of signals indicative of the performances of the associated components. When values of the signals generated by sensors 38 deviate from expected values or ranges, the signals may be correlated to a status of the associated component. For example, when the value of a particular signal exceeds or falls below a corresponding threshold value, the associated components may be determined to be malfunctioning. The signals generated by sensors 38 may be directed to controller 46 for further processing.
Locating device 40 may be configured to generate signals indicative of a geographical position and/or orientation of train 10 relative to a local reference point, a coordinate system associated with a region, a coordinate system associated with Earth, or any other type of 2-D or 3-D coordinate system. For example, locating device 40 may embody an electronic receiver configured to communicate with satellites or with a local radio or laser transmitting system and to determine a relative geographical location of itself. Locating device 40 may receive and analyze high-frequency, low-power radio or laser signals from multiple locations to triangulate a relative 3-D geographical position and orientation. Signals generated by locating device 40 may be directed to controller 46 for further processing.
Communicating device 42 may be configured to facilitate data communication between different components (e.g., between sensors 38 and controller 46, between controller 46 and display 44, and/or between controller 46 and another controller offboard train 10 at a back office) of system 36. Communicating device 42 may include hardware and/or software that enable the sending and/or receiving of data messages through a communications link. The communications link may include satellite, cellular, infrared, radio, and any other type of wireless communications. Alternatively, the communications link may include electrical, optical, or any other type of wired communications, if desired. In one embodiment, display 44 and/or controller 46 may be located offboard train 10 (e.g., at the back office), and may communicate directly with the other onboard components of system 36 via communicating device 42, if desired. Other means of communication may also be possible.
Display 44 may include one or more monitors (e.g., a liquid crystal display (LCD), a cathode ray tube (CRT), a personal digital assistant (PDA), a plasma display, a touch-screen, a portable hand-held device, or any such display device known in the art) configured to actively and responsively show trip simulation results to the user of system 36. Display 44 is typically disposed in close proximity to the cabin of train 10 and within the view of the operator of train 10. However, as described above, display 44 could be located offboard train 10, in one embodiment. Display 44 may be connected to controller 46, and controller 46 may execute instructions to render graphics and images on display 44 that are associated with a simulated trip.
Controller 46 may embody a single microprocessor or multiple microprocessors that include a means for controlling an operation of system 36 based on information obtained from any number of train components via sensors 38, from locating device 40, and/or from communications received via communicating device 42. Numerous commercially available microprocessors can be configured to perform the functions of controller 46. Controller 46 can include a memory, a secondary storage device, a processor, and any other components for running an application. Various other circuits may be associated with controller 46 such as power supply circuitry, signal conditioning circuitry, solenoid driver circuitry, and other types of circuitry.
As mentioned above, controller 46 may be configured to perform simulations of trips to be completed by train 10. More specifically, controller 46 may be configured to perform simulations of a remainder of a trip assigned to train 10, following malfunction of a component of train 10 during the trip. The simulations may be performed based on a known profile of track 22 (e.g., horizontal track changes, vertical track changes, track quality and/or friction, speed limits, road crossings, and other trip-related data) yet to be traversed by train 10, based on known train information (e.g., length, weight, pulling capacity, available power, a fuel consumption, a thermal characteristic, a cargo type and value, a delay cost, a locomotive configuration and performances, a braking capacity, a rolling resistance, and other train-related data), environmental conditions (e.g., precipitation, temperature, etc.), based on desired goals (e.g., time of arrival, fuel consumption, operational cost, etc.), and other factors known in the art. The simulations may be performed using maps, equations, graphs, tables, scales, and other preprogrammed algorithms stored in the memory or otherwise communicated to controller 46.
The results of the simulation may include static results and dynamic results. The static results may consist of either a positive response or a negative response regarding the desired goals. For example, if the desired goal is to reach a destination, the static results of the simulation performed by controller 46 may simply indicate that train 10 will or will not reach the destination. Similarly, if the desired goal is a time of arrival, the static results of the simulation may simply indicate that train 10 will or will not reach the destination on time. Dynamic results may consist of an anticipated performance value associated with a particular operation of train 10, indexed to any given time, location, or distance along the remainder of the trip. For example, the dynamic result could include an anticipated location, speed, fuel consumption, temperature, pressure, etc., for given intervals of time, location, or distance.
The results of the simulation may be used by the back office, by controller 46, and/or by the onboard operator of train 10 in making decisions regarding the given malfunction. For example, based on the simulation results, a decision may be made to shut down train 10 at its current location, to continue to a better location for repairs before shutdown, to complete the assigned trip, to dispatch a repair vehicle, to modify train operation and continue, to dispatch replacement equipment (e.g., replacement locomotive 12) etc.
In some embodiments, in addition to performing trip simulations following a component malfunction, controller 46 can also be configured to automatically affect operation of train 10 based on results of the simulated trip and/or in response to commands received from the operator of train 10 or from the back office. For example, controller 46 may be configured to command adjustments be made to the different components of train 10. These adjustments may include, among other things, a throttle setting of engine 26, isolation of the malfunctioning component (e.g., of a particular traction motor 25), overriding of an existing operational limit (e.g., of a temperature, pressure, or speed limit) associated with the malfunctioning component, changing a blend ratio of different fuels, etc. In some situations, controller 46 may first simulate operation of train 10 using an anticipated adjustment, before actually implementing the adjustment. In this way, confidence in the adjustment may be increased.
A second area 52 of GUI 48 may provide a summary associated with train 10 and/or the assigned trip. For instance, area 52 may show an identification of train 10, an identification of locomotives 12 in train 10, a number of cars (a.k.a., wagons) connected to locomotives 12, a weight of train 10, a length of train 10, a type of payload carried by train 10, a travel direction, a payload source, a destination, a scheduled time of arrival (STA), an expected time of arrival (ETA), an earliest possible time of arrival, and a crew identification. This information may be manually entered into system 36 prior to a start of the assigned trip, and/or automatically looked up and/or collected from any number of different sources and databases, as desired.
A third area 54 of GUI 48 may be an alert area. In particular, when controller 46 determines that a value of one or more of the signals generated by sensor(s) 38 have deviated from an acceptable value or range, controller 46 may generate an error flag corresponding to the deviation. For example, controller 46 may provide a visual alert within area 54, making the user of system 36 aware of a corresponding component malfunction. In the disclosed example, the depicted alert indicates that a locomotive 12 identified as #1 is experiencing low-fuel pressure, and has been shut down. A fourth area 56 may provide an illustration of the offending component and/or part of train 10 that is experiencing the malfunction.
A fifth area 58 of GUI 48 may be configured to illustrate the static results of a trip simulation run by controller 46. As stated above, the static results may include the simple positive/negative answer regarding train 10 being able to achieve the desired goal, given the current malfunction. In some instances, the static results may also show some calculated values corresponding to the anticipated performance of train 10. These values may include, for example, a maximum amount of tractive force that can be applied by the remaining locomotives 12 after locomotive #1 is shut down, a maximum wheel adhesion, an amount of fuel anticipated to be consumed, and a time required to complete the assigned trip given the derated performance of train 10.
Controller 46 may determine the simple answer displayed in area 58 by comparing the performance goal with the simulated results. For example, if the goal is only for train 10 to reach a particular destination, controller 46 may simply compare an amount of tractive effort required to pull train 10 over the known track profile ahead of train 10 with an amount of tractive effort still available after locomotive #1 is shut down (or otherwise given the current malfunction or failure). Additional comparisons, for example regarding an amount of required fuel relative to available fuel or thermal characteristics of engines 26 and/or traction motors 25 relative to known limits, may also or alternatively be made. Other goals can include a time to reach the destination, a fuel consumption amount, or something else. The performance goal may be input to system 36 by way of GUI 48.
A final area 60 of GUI 48 may be configured to illustrate the dynamic results of a trip simulation run by controller 46. As described above, the dynamic results shown in area 60 may include results of the simulation indexed to time, distance, and/or location. For example, area 60 of
As described above, controller 46 may be configured to first simulate operation of train 10 using an anticipated adjustment, before actually implementing the adjustment. Specifically, when the static result of an initial simulation is negative or only marginally acceptable, controller 46 and/or the user of GUI 48 may cause the static simulation to be rerun under different conditions or cause a more accurate dynamic simulation to be run. That is, virtual adjustments may be made to the different components of train 10 in the corresponding simulation model, and controller 46 may rerun the simulation to see what effect the virtual adjustments could have on the results. For example, if a particular traction motor 25 was nearing a known thermal limit and the initial simulation showed that the problematic traction motor 25 would exceed the limit before train 10 reached its destination (resulting in a negative static result), controller 46 could rerun the simulation after virtually isolating (e.g., turning off) the problematic traction motor 25. In another example, the known thermal limit may be ignored or the malfunction otherwise overridden, and controller 46 may rerun the simulation to determine the results (e.g., the collateral damage and associated operational cost) of doing so. In some instances, the collateral damage caused by ignoring a pre-set limit or overriding the malfunction may be less than the cost of not reaching a destination or of arriving late. Other exemplary adjustments could include adjusting a throttle setting on an engine experiencing a malfunction, reassigning a lead locomotive as a trail locomotive and vice-versa, resetting a component, etc. Based on the results of the rerun simulation, adjustments could be commanded by the operator via GUI 48 or automatically implemented by controller 46.
The disclosed system can be applicable to any train that includes components, which could malfunction during completion of a trip. The disclosed system may provide a way to determine if the train is able to successfully complete the trip, given the malfunction. Specifically, the disclosed system may simulate a remainder of the trip while accounting for the effects of the malfunction. This simulation may aid in making decisions regarding the status of the train and the malfunctioning component. Operation of system 36 will now be explained in detail, with respect to
The process of
When controller 46 determines that the malfunctioning component should not have a significant effect on the successfulness of the trip, controller 46 may log a fault and allow train 10 to complete the trip without intervention (Step 330). However, when controller 46 determines at step 320 that the detected malfunction of the offending component could have a significant impact on completion of the trip, controller 46 may be automatically triggered to simulate the remainder of the trip, taking into account the detected abnormal condition and based on preloaded track profile and train information (Step 340). The results may thereafter be shown on display 44.
It should be noted that, in some situations, normal protocol may cause train 10 to automatically shut down in response to the malfunction of the component. In these situations, controller 46 may be triggered to run trip simulations based on the malfunction detection or based on the shutdown of train 10, as desired. Accordingly, controller 46 may run the simulations while train 10 is stationary, in some instances, and while train 10 is underway, in other instances.
In some embodiments, additional simulations may be run to see if adjustments to the components of train 10 may improve the likelihood of train 10 successfully completing its assigned trip. The additional simulations may be triggered manually or automatically, as desired. In the example of
At step 360, controller 46 may determine if adjustments can be made to the malfunctioning component of train 10 to positively affect the results of the simulation. For example, if the initial simulation shows that completely shutting down locomotive #1 (from the above GUI 48 example), makes it impossible for train 10 to complete its assigned trip within the desired window of time, controller 46 may try to determine if the engine of locomotive #1 could instead be run at ½ throttle (e.g., at notch setting 3 or 4) to complete the trip in a timely manner without causing excessive collateral damage (e.g., without destroying engine 26). If adjustment options are available, controller 46 may be configured to implement corresponding virtual adjustments to the simulation model (Step 370), and then return to step 340. After successful completion of steps 340-370, when control moves from step 350 to step 330, the virtual adjustments used during the subsequent simulations may become real and implemented in step 330. If controller 46 determines that no adjustment options exist that are likely to improve the results of the simulation, control may instead move from step 360 to step 380, wherein a separate trip failure protocol is implemented.
It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed system without departing from the scope of the disclosure. Other embodiments of the system will be apparent to those skilled in the art from consideration of the specification and practice of the system disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope being indicated by the following claims and their equivalents.
Claims
1. A system for simulating operation of a train, comprising:
- at least one sensor configured to generate a signal indicative of an operating status of a component of the train during completion of an assigned trip;
- a display; and
- a controller in communication with the at least one sensor and the display, the controller being configured to: retrieve from memory first data associated with the assigned trip; retrieve from memory second data associated with the train; simulate completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning; and cause simulation results to be shown on the display.
2. The system of claim 1, wherein at least one of the display and the controller is located remote from the train.
3. The system of claim 1, wherein the at least one of the display and the controller is mountable onboard the train.
4. The system of claim 1, wherein the controller is configured to simulate completion of the remainder of the assigned trip while the train is underway.
5. The system of claim 1, wherein the controller is automatically triggered to simulate completion of the remainder of the assigned trip based on a change in the operating status of the component.
6. The system of claim 5, wherein:
- the train is shutdown when the operating status of the component becomes malfunctioning; and
- the controller is automatically triggered to simulation the remainder of the assigned trip when the train is shutdown.
7. The system of claim 1, wherein the controller is manually triggered to simulate completion of the remainder of the assigned trip.
8. The system of claim 1, wherein the simulation results include at least one of an anticipated arrival time and an anticipated fuel consumption.
9. The system of claim 1, wherein the controller is further configured to:
- receive input indicative of a goal for the train associated with the assigned trip;
- make a comparison of the simulation results with the goal; and
- provide an indication regarding a successful outcome for the remainder of the assigned trip based on the comparison.
10. The system of claim 9, wherein the goal is associated with at least one of an arrival time and a fuel consumption.
11. The system of claim 9, wherein the controller is further configured to:
- make a determination that the operating status of the component could negatively affect achievement of the goal; and
- simulate the remainder of the assigned trip only when the operating status of the component is likely to negatively affect achievement of the goal.
12. The system of claim 1, wherein the first data includes a track profile for the remainder of the assigned trip.
13. The system of claim 1, wherein the second data includes at least one of a train weight, a train length, a rolling resistance, an available power, a fuel consumption, a thermal characteristic, a cargo value, a delay cost, and a location of the train.
14. The system of claim 1, wherein the controller is further configured to:
- determine a collateral damage cost of ignoring the operating status of the component; and
- selectively ignore the operating status of the component when simulating the remainder of the assigned trip based on the collateral damage cost.
15. The system of claim 1, wherein the controller is further configured to:
- determine an adjustment to the train that will improve a likelihood of completing the assigned trip; and
- selectively simulate the remainder of the assigned trip using the adjustment.
16. The system of claim 15, wherein the adjustment includes a reduced throttle setting.
17. The system of claim 15, wherein the adjustment includes isolation of the component.
18. The system of claim 15, wherein the adjustment includes reassignment of lead locomotive designation within a consist of the train.
19. The system of claim 15, wherein the adjustment includes changing of an operating parameter limit.
20. The system of claim 15, wherein the adjustment includes a change in a blend ratio of different fuels consumed by the train.
21. A system for simulating operation of a train, comprising:
- at least one sensor mountable onboard the train and configured to generate a signal indicative of an operating status of a component of the train during completion of an assigned trip;
- a display located offboard the train; and
- a controller in communication with the at least one sensor and the display, the controller being configured to: retrieve from memory first data associated with the assigned trip; retrieve from memory second data associated with the train; receive input indicative of a goal for the train associated with the assigned trip; simulate completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning; make a comparison of simulation results with the goal; and show on the display an indication regarding a successful outcome for the remainder of the assigned trip based on the comparison.
22. The system of claim 21, wherein the controller is further configured to:
- determine an adjustment to the train that will improve a likelihood of completing the assigned trip; and
- selectively simulate the remainder of the assigned trip using the adjustment.
23. A method of simulating operation of a train, comprising:
- generating a signal indicative of an operating status of a component of the train during completion of an assigned trip;
- retrieving from memory first data associated with the assigned trip;
- retrieving from memory second data associated with the train;
- simulating completion of a remainder of the assigned trip based on the first data, the second data, and the signal, when the operating status of the component becomes malfunctioning; and
- displaying results of the simulating.
24. The method of claim 23, wherein displaying results of the simulating includes displaying the results at a location remote from the train.
25. The method of claim 23, wherein displaying results of the simulating includes displaying the results onboard the train.
26. The method of claim 23, wherein simulating completion of the remainder of the assigned trip includes simulating completion of the remainder of the assigned trip while the train is underway.
27. The method of claim 23, further including:
- receiving input indicative of a goal for the train associated with the assigned trip;
- making a comparison of the results of the simulating with the goal; and
- providing an indication regarding a successful outcome for the remainder of the assigned trip based on the comparison.
28. The method of claim 23, wherein:
- the first data includes a track profile for the remainder of the assigned trip; and
- the second data includes at least one of a train weight, a train length, a rolling resistance, an available power, a fuel consumption, a thermal characteristic, a cargo value, a delay cost, and a location of the train.
29. The method of claim 23, further including:
- determining a collateral damage cost of ignoring the status of the component; and
- selectively ignoring the operating status of the component when simulating the remainder of the assigned trip based on the collateral damage cost.
30. The method of claim 23, further including:
- determining an adjustment to the train that will improve a likelihood of completing the assigned trip; and
- selectively simulating the remainder of the assigned trip using the adjustment.
Type: Application
Filed: Oct 13, 2015
Publication Date: Apr 13, 2017
Applicant: ELECTRO-MOTIVE DIESEL, INC. (LaGrange, IL)
Inventors: Curtis Allen SWENSON (Burr Ridge, IL), Alexander SHUBS, Jr. (Chicago, IL), David Matthews ROENSPIES (Elburn, IL)
Application Number: 14/881,546