Slack: Say Hello to my OsiBot

Blog Post created by ernstamort on Jun 9, 2016

Slack has gotten lot of attention as a new way of collaborating in teams, especially in the tech industry. When I first saw it, I have to admit I wasn't that impressed. I didn't really see much more as a chatting app in it, with some news feed. It is often used in Software development and it does make life easier when you interface it with TFS and get updates about new check-ins. But other than that I asked myself, what is so different compared to other apps?


I stumbled across Slack a second time when I was searching for a new delivery channel for the AF system. Email and SMS doesn't seem to be a good fit, since they look dated and are more appropriate when sending very urgent messages (otherwise you create a lot of spam). But not all messages in manufacturing are urgent, some are just information that you would like to receive to keep updated. Some messages might be warnings and some messages need acknowledgement.


The other problem is that you need a system that allows real time collaboration. If an operator receives a message that a quality parameter is off-spec, he might need to communicate with several people in order to proceed:

QC: Do you need to test a second sample to confirm the result?
Field Operator: Hold off on the transfer before a decision has been made.
Supervisor: Needs to decide what to do with the product.


It is clear that Email or SMS are not the right tools to allow for quick decision making.


Slack does allow collaboration and provides an easy to use API to connect to message streams. But just streaming messages or events wouldn't make it a great tool, it also needs context. In the following example I used ISA 95 and ISA 88 data models to structure the AF database. Now I can map the equipment structure in AF to the channels in Slack:


     Area + Unit = Slack Channels


The idea is to get a unique combination that helps to identify the channel.


Now every batch event can be traced back to the equipment and posted in the right channel. The benefit is that people can subscribe to the channels that they are interested in.




Each event also has a set of icons (check mark, question mark, cancel) to react to the event. These reaction can be traced and sent back to the AF system Now its possible to collaboratively decide if the event needs follow up or passes.


But there are often situations where you would need additional information to make a decision. This is where Slack bots come in. These are programmable users that respond to messages. In the first version the OsiBot can pull attribute information, which again is context specific. So in channel biotech-bio_reactor_3 a query for attributes will create a list of just the attributes for this reactor:





The next steps in this project is to make the bot a bit more interactive, so
     add function to write back to attributes

     get time series

     filter attributes by static and dynamic

     add charts and plots


Generally, I think Slack and PI are a great combination and will improve communication and decision making in manufacturing. Key I believe are to properly contextualize your data so you make it easier for people to find their information.