Brewery Pi

Data for the Craft Brewer

View the Project on GitHub

Brewery Pi and S88

The Brewery Pi structure is based on the S88 Batch Standard (ISA S88.01).  A short and approachable reference book for learning about this standard is “Applying S88: Batch Control from a User’s Perspective” by Jim Parshall, available at the ISA Site or on Amazon. I will briefly explain the various levels in S88 as these are most important for Brewery Pi naming and then give a breakdown of how to name.


This is typically your brewery.  Even if your brewery is part of a conglomerate or owned by a larger corporation, you probably still identify your own recipes and production facilities with your brewery name.  This is the top level in S88 and in Brewery Pi, and these names (if there is more than one), must be unique.


This is a physical location where beer is produced.  If you have multiple locations (perhaps a pub and a production plant, or production plants on each coast), then you will want a site name for each.  Site names must be unique in Brewery Pi as well.


This is all the equipment that completes a major step in the process: brewing, cellars, and packaging are examples of typical areas.

Process Cell

This is defined in the standard as a group of equipment necessary to complete a batch, and in some cases, like with a brewhouse or a packaging line, this definition works easily.  In others though, it makes sense to think of this more general as an organization group below area.  For example, you could think of a single fermenter as all the equipment required to complete a single fermentation batch, but you would not want to have a process cell for each fermenter.  Instead, you might group your cellar process cells into tanks that are in certain areas, or have certain characteristics, or certain purposes. For instance, you might have a process cell for FVs and one for BBTs, or you might have a group of tanks with a certain level of automation that is different from another set, or a set of tanks that shares a supply line or a blow-off header.  You may also wish to ignore process cell all-together in some cases and group everything under the area. Process cell is the first level of S88 that you would use an element template and element in Brewery Pi to define. This means you can add attributes at this level, or properties that you want to record in a tag. If you do establish process cell elements, then you will want to include the process cell name as part of all the tag names under it.


This is the base level of S88, and can be thought of as a machine or vessel. The mash tun, a fermenter, and a packaging filler are all examples of units. The unit in S88 is typically the most common element in Brewery Pi. Unit names only have to be unique in their process cell, but you may want to make them unique at a site in some cases. Here are two examples: for a mash tun, if you had two brewhouses, you would probably just have Mash Tun 1 in each brewhouse process cell, since those mash tuns are dedicated to the brewhouse that contains them. However, in the case of a fermenter in the cellar, even if you are using different process cells there, you probably are not going to restart your fermenter numbering based on those process cells, because those units all serve a similar and interchangeable purpose, and will likely be compared to one another as they may have comparable batches in them. Therefore, you will probably only have one Fermenter 1 at any given site. If units are not named uniquely for a site, we recommend having either the process cell and unit or the area and unit uniquely identify it within a site. This allows each unit at a site to be named with two parts, which if and when you have brewery automation will be useful for displaying unit names on operator screens. The unit will also be included in the name of any tag that falls under it.

Equipment Module

This is a subset of a unit and is a group of control modules (see below) that act at the same time. This level is also not required, but might be useful for organization. This would be another element in Brewery Pi. Because element can be organized in a hierarchy in Brewery Pi, all these levels (and more if you choose) can be done with element. As with the other elements, if you use equipment modules, you would include this level name in any tag that falls under it. Equipment module names only need to be unique within their parent units; you may have the same equipment module on several similar units, but they would be identified with their unit as part of their name.

Control Module

This is the lowest level of S88, and is an individual piece of equipment or instrumentation. Valves, pumps, temperature sensors, and flow meters are all examples of control modules. These could also be elements if you choose, but if you only have one or two things to track you may not want to set up a hierarchy just two organize those tags. On the flip side, element templates could come in very handy here if you wanted to add a large number of a similar control module to the database. As above, if you use an element for these, then add the name to any tag name that falls under it. Naming control modules can get complex. There are lots of standards out there, and you can include varying amounts of information in the label; if you go with more information, the labels get long. Your brewery may already have a convention for naming these, especially if you have a maintenance department. However, you may want to develop your own scheme. While having one scheme at a site can be very useful, it is important to keep in mind that if you are displaying control module names on an operator screen, you do not want too long a name. What a brewer is concerned with is typically a basic identifier for what type of equipment the control module is, and then a number so it can be uniquely identified when talking to other brewers or departments. We recommend having a unique number (at least three, and possibly up to five digits, depending on the size of your brewery) that identifies the module, and then a one-to-three-letter abbreviation to identify the control module type. Do not reuse numbers even with different letters, as this can make things confusing when looking at screens or listing modules. You can also leave space between numbers so that all control modules associated with a unit are in the same number series. For instance, all the control modules on your lauter tun might be in the 300’s. This can be nice for quickly identifying physical locations, but requires a larger spread of numbers, and also requires that you leave space in the number scheme in case you add more control modules at a later date. Some examples: pump 1023: P1023, valve 2027: V2027, temperature indicator 1: TI0001, flow indicator 35: FI0035. It is a good idea to physically put labels on the equipment that match whatever you name them in Brewery Pi so people can relate the screen to the physical equipment.


This is not a level in S88, but is the main way brewers will be identifying a tag in Brewery Pi, and so will definitely be included in the tag name.  This could be something like Plato, pH, Temperature, Weight, BrewNumber; ProcessValue (PV), SetPoint (SP); really anything you want to track.  For this final level, because it is the most specific identification of the tag and will be what someone looking for the tag is searching for, we recommend not using abbreviations unless they are very well recognized (like SP above).  To avoid spaces, which might be problematic for some older software systems, camel case is a good option, as shown in the multi-word properties above.