HMI design

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

cowboy1

Well-Known Member
Joined
Mar 15, 2014
Messages
125
Reaction score
6
Location
Richmond
I wanted to share screenshots of my HMI as I create them in hopes I would get some feedback to help make the interface better. This is my heat and fill screen.
Process: 1. Heat exchanger fills agitator turns on and it heats to dough in temperature. 2. Boil kettle fills to strike volume and heats to strike temp. 3. Boil kettle pumps to mash tun. 4. Mash cycle starts. Note: Nav group is missing button to mash screen in this screen shot. This system will be used outside so colors need to work with outdoor conditions. Any comments/help would be greatly appreciated. Thanks

image.jpg
 
Great start! I can only contribute what I know from doing this from a living. This might not be specific to your screen, but in general.

1. Standardized color schemes work. They prevent incidents and convey the right info when you need it. Grey is off, blue is on, red is an alarm condition requiring operator intervention, yellow is manual mode or an interlocked condition, etc... There are guides online on how to follow this standard. The idea is they've done studies on what catches the eyes best.

2. If the batch runs in a simple sequence I would assign a multistate indicator to an integer. If the integer is 0 then the indicator reads "batch idle", 1 would be "heating up boil kettle" or something like that. I see you have what appears to be each step as part of a little box separate for each one or something. Maybe layer them on top and only have the one visible when it's on the correct step.

3. If the sequence is highly automated I would put in a few "acknowledgement" buttons that pop up between batch steps for safety sake or to visually verify certain things did happen correctly.

4. The e-stop is fine, but make sure if you really want something to be an e-stop it needs to be hard-wired in-line with the equipment it de-energizes or the safety control relay that de-energizes the equipment. Relying on an HMI/PLC communications connection for that isn't sufficient in "manufacturing plant" level stuff. I know it's home brew, but if you want it to stop you want it to stop.

5. I don't see it unless I am having male refrigerator blindness, but I'd add a current step timer. A step time total and maybe an estimated step time. Maybe an indicator if one exceeds the other by more than X. Also maybe a total batch timer.

6. Add a manual mode to anything that has automatic control. Something goes awry, put it in manual to stop it or start it.

7. An abort batch step, repeat batch step, hold batch step. Something goes wrong and you fix it you can restart the step. Something goes wrong that doesn't need a restart, just resume. Totally fudged it up, toss it and abort instead of waiting for a sequence to finish.

8. If that HMI has an alarm manager and bar, use it. Configure some alarms based on SP's for the steps, low-low, low, hi, hi-hi. That will help you manually intervene if something goes wrong and save the batch from ruin.

If you're crazy about batch and automation let me recommend:

1556177038.gif
 
Great start! I can only contribute what I know from doing this from a living. This might not be specific to your screen, but in general.

1. Standardized color schemes work. They prevent incidents and convey the right info when you need it. Grey is off, blue is on, red is an alarm condition requiring operator intervention, yellow is manual mode or an interlocked condition, etc... There are guides online on how to follow this standard. The idea is they've done studies on what catches the eyes best.

2. If the batch runs in a simple sequence I would assign a multistate indicator to an integer. If the integer is 0 then the indicator reads "batch idle", 1 would be "heating up boil kettle" or something like that. I see you have what appears to be each step as part of a little box separate for each one or something. Maybe layer them on top and only have the one visible when it's on the correct step.

3. If the sequence is highly automated I would put in a few "acknowledgement" buttons that pop up between batch steps for safety sake or to visually verify certain things did happen correctly.

4. The e-stop is fine, but make sure if you really want something to be an e-stop it needs to be hard-wired in-line with the equipment it de-energizes or the safety control relay that de-energizes the equipment. Relying on an HMI/PLC communications connection for that isn't sufficient in "manufacturing plant" level stuff. I know it's home brew, but if you want it to stop you want it to stop.

5. I don't see it unless I am having male refrigerator blindness, but I'd add a current step timer. A step time total and maybe an estimated step time. Maybe an indicator if one exceeds the other by more than X. Also maybe a total batch timer.

6. Add a manual mode to anything that has automatic control. Something goes awry, put it in manual to stop it or start it.

7. An abort batch step, repeat batch step, hold batch step. Something goes wrong and you fix it you can restart the step. Something goes wrong that doesn't need a restart, just resume. Totally fudged it up, toss it and abort instead of waiting for a sequence to finish.

8. If that HMI has an alarm manager and bar, use it. Configure some alarms based on SP's for the steps, low-low, low, hi, hi-hi. That will help you manually intervene if something goes wrong and save the batch from ruin.

If you're crazy about batch and automation let me recommend:

1556177038.gif

I want to thank you for the very detailed reply. This is great information and I will make some changes to my current set-up and re-post to see if I'm going in the right direction.

1.) I will do a search on color standardizing. My current choices were really just what may be the easiest to see outdoors in sunlight.

2.) Most of the sequences will be running simultaneously. The indicators I have put on the left side of each step light as the SV are met.

3.) I have several message boxes that pop-up during the cycle to alert me to actions I need to do as far as some stuff that isn't automated.

4.) I didn't have the physical E-Stop in the plan but understand and will be installing one in the panel. Automation involved should have a E-Stop.

5.) Adding timer step and total timer is a great idea and that will be going in tonight.

6.) My limited knowledge in programming might cause me problems with this one. Do you think something like a zone reset for the step would kind handle that. Just kind of asking for ideas for something to go by?

7.) Same as 6 novice

8.) I think the HMI has a alarm manager and I will research how it works.

I will probably purchase the book you recommended and make changes as I progress. I have run out of beer and had to resort to buying beer again so I need to get running soon but safely of course.

Thanks again for your time and if you have and guidance at all on 6, 7, and 8 that would be great.

Cheers,

David
 
The hold, repeat, abort steps would just be a single button each. The magic is in the code not the HMI. If the step is an integer skipping a step would maybe add X to the step number. If abort, make the step number zero. Pause would make the timer code false.

I'm not sure of the code style, but imagine this if it is text style code: just a rough swag to give some ideas.

Vars
int = stepnumber
timer = step_time
bool = valve1
bool = pump1
real = temperature1
bool = startbatch
bool = pausebatch
bool = abortbatch
bool = repeatstep
real = step100timesetpoint
bool = heater1
bool = skipstep

If startbatch = 1 Then stepnumber = 100

If stepnumber = 100 And pausebatch = false Then Run step_time
If stepnumber = 100 And step_time.total > step100timesetpoint And repeatstep = false Then stepnumber = stepnumber + 10

If stepnumber = 110 And pausebatch = false Then Run step_time
If stepnumber = 110 And step_time.total > step100timesetpoint And repeatstep = false Then stepnumber = stepnumber + 10

If skipstep = true Then
stepnumber = stepnumber + 10

//repeat above for steps, add conditions like temperature or levels, increment steps by 10 so you can insert more easily if needed. Pause step makes the timer part not run. Skip just adds 10 to the stepnumber to get to the next step

If abortbatch = true Then stepnumber = 0

//This sends the batch steps to a point where nothing is running

If stepnumber = 0 Then
valve1 = false
pump1 = false
heater1 = false

If stepnumber = 100 Then
valve1 = true
pump1 = true

If stepnumber = 110 Then
valve1 = true
pump1 = false
heater1 = true
 
The hold, repeat, abort steps would just be a single button each. The magic is in the code not the HMI. If the step is an integer skipping a step would maybe add X to the step number. If abort, make the step number zero. Pause would make the timer code false.

I'm not sure of the code style, but imagine this if it is text style code: just a rough swag to give some ideas.

Vars
int = stepnumber
timer = step_time
bool = valve1
bool = pump1
real = temperature1
bool = startbatch
bool = pausebatch
bool = abortbatch
bool = repeatstep
real = step100timesetpoint
bool = heater1
bool = skipstep

If startbatch = 1 Then stepnumber = 100

If stepnumber = 100 And pausebatch = false Then Run step_time
If stepnumber = 100 And step_time.total > step100timesetpoint And repeatstep = false Then stepnumber = stepnumber + 10

If stepnumber = 110 And pausebatch = false Then Run step_time
If stepnumber = 110 And step_time.total > step100timesetpoint And repeatstep = false Then stepnumber = stepnumber + 10

If skipstep = true Then
stepnumber = stepnumber + 10

//repeat above for steps, add conditions like temperature or levels, increment steps by 10 so you can insert more easily if needed. Pause step makes the timer part not run. Skip just adds 10 to the stepnumber to get to the next step

If abortbatch = true Then stepnumber = 0

//This sends the batch steps to a point where nothing is running

If stepnumber = 0 Then
valve1 = false
pump1 = false
heater1 = false

If stepnumber = 100 Then
valve1 = true
pump1 = true

If stepnumber = 110 Then
valve1 = true
pump1 = false
heater1 = true

I'm actually understanding this and you give very good instructions. My PLC program is a step program so it shouldn't be hard to implement this concept. Some of this is already there but will look at being able to step backwards. I wanted to share some progress I have made and will look at the new information you have given me to make this unbreakable hopefully. Again thanks for sharing. This is a screenshot of my mash cycle and is running very well.

Mash Screen.jpg
 
Latest screenshot. Almost finished programming. Couple bugs left but should be running by the end of September. I can't wait, haven't been able to brew since May.

image.jpg
 
Awesome job man! I'm a little jealous of your HMI. I want to do an automated setup someday. Some home improvements and other stuff ate it up the opportunity for a while.

One day....lol.
 
Thanks for your Help. When you start your build hit me up I my be able to pass on some money saving tips. I should finish my electric HERMS keggle system for under 1500.

Tip #1 ebay

Cheers,

David
 
Well so much for September. I had some relay issues and limited time to work on my build. After 5 months I have finally completed my panel wiring and check out is complete as well. I still have a couple of small punch list items then go to water batching. I have a few picture of the module but they want to post sideways and I don't know how to fix them. Questions comments welcome.

Cheers,

David

image.jpeg
 
Good day everyone. I am a mechanical engineer that deals with commissioning if large fertilizer plants, etc. I recently had the opportunity to commission some of my designs in a plant and work closely with an automation company and I got the HMI bug. As you may know, mechanical engineers are like a cat in water when it comes to electrical. Any advice of software and hardware would be much appreciated. I will start simple and go from there. Thanks so much for the help.

-Spencer
 
Back
Top