Batch control


Researching using FactorySQL for a project and have a (hopefully) easy question. I watched the tutorial video on Batch and Recipe Management, but it didn’t really touch on my concept of batching. There’s two components: 1) control of batches with schedules, 2) history of recipes completed. The video seemed to only touch on the second part.

Does Inductive Automation have anything comparable to Wonderware InBatch for managing a schedule of batches to be completed? The answer doesn’t necessarily affect my decision to use the products for this project, just a curious question.


Unfortunately I’m not familiar with InBatch, so maybe someone else can make an actual comparison of capabilities. Instead, I can make some comments on what FactorySQL can do and what some people have done:

  1. Scheduling - generally there isn’t a direct way to do something on an explicit schedule basis. All groups have a base rate at which they execute, or at least check their trigger conditions. However, the trigger can be based on an action item, which can be an expression or sql query. Therefore, you can do some pretty complicated things if you feel like it. For example, you could have a table in the database with a list of times to execute. The action item can select the next one, and when it gets to be that time, the group will execute.

  2. Following on that, a group’s where clause can also reference opc or action items, in order to build dynamic where clauses. So, extending #1, your table could also have the row id of the batch/recipe to load, which would get loaded by another action item, which in turn is referenced in the where clause. When the time came up, the group would execute, and would write the values from that particular row to the PLC.

  3. Once again, action items can be SQL queries, and they can be set to run always (as those first two would be), or only when the trigger is active. By creating one that runs on the trigger, you could have it execute an insert statement into a batch history table indicating that the group executed. You could also include the values of the other items if you wanted in order to indicate which record was written.

  4. For absolute consistency and record keeping, however, you would want to do a bit of work in the plc to accommodate a success and failure handshake. You would then set both of these up on your batch group’s trigger tab. Finally, instead of storing batch history in that group as mentioned in #3, you would have a secondary group that watched both of these items, along with possibly the batch values (now in the plc). Triggering on two items is not natively supported, so you could either just track the success bit, or create an action item which OR’d the values together and trigger of that. Then create two action items that are simple expressions, just 0 for the value, and have them write back to those opc items in order to reset them for the next batch.

Hope this gives you some ideas, please feel free to reply with any questions!