Page 1 of 1

Custom interface finally finished

Posted: Thu Oct 27, 2011 12:37 pm
by bbrally
Originally, many moths ago, I started making a flash presentation movie to show my family how my brewery process worked.

That led me to the thought that I could use that graphical display to control the brewery.

Little progress was made as I haven't done any programming in 25 years, and the learning curve to re-educate myself was steep, there's been a lot of changes since the early 80's. (thanks to everyone on this and other forums for their help and knowledge)

Three months ago, an unfortunate fall at work left me with a badly broken right wrist. Unable to do almost anything but sit on the couch left me with lots of time to learn and program the controller. It was a a lot of slow left handed typing, but I think I'm finally finished.

I mainly wanted a graphical representation of the brewery to make programming easier and for visual confirmation that the valves that I thought were operating were the correct ones. At first I started programming the interface as a simple display of what the BCS was doing. This started to become difficult as there were so many files (sysname.dat, ulsysio.dat, ucsysio.dat, ulfloat.dat, ulstate.dat, ucstate.dat, ultemp.dat) to modify/access on the BCS and the amount of communication traffic and the time it took for that traffic to take place was affecting the feel of the interface.

So I decided to write all of the controlling functions into my software (PID, Timers, processes, states, etc) and use the BCS only to open/close valves (forceout.dat) and read temperatures and confirm valve opening/closing (ultemp.dat).

I kept the same basic programming logic of the BCS, but added a few convienences that I thought would be nice to have. One was the ability to add notes that would display as a new state was started. This could remind me of what hops to add (or what hoses to swap, back when I still had hoses to swap). Another was the ability to insert/delete a state or process.

I still have to drag the brewery outside and test the PID function. That was the single biggest thing I had learn, and I'm not completely sure I've done the programming properly.

Anyone interested in trying it out can download the flash file at: ... U4aEU/edit

I've created mine as a desktop application which allows for a cleaner interface and the ability to set the idle timeout instead of the browser default of 20secs. That probably could have been changed but it wasn't obvious to me how, so I bypassed the idea of using a browser.

Flash settings may have to adjusted, mainly allowing flash access to the folder where the swf file is stored. Settings are adjusted here: ... ger04.html

BCS address of is used.

The native resolution is 1920X1080. Lower resolutions start looking awkward. Here's a screen shot: ... ist&num=50 (fullscreen version)
Brewery Interface 12.0.jpg
Brewery Interface 12.0.jpg (202.32 KiB) Viewed 5324 times

Re: Custom interface finally finished

Posted: Fri Oct 28, 2011 9:01 am
by ECC
Great work, very nice layout. I would love to try it out. Any chance that you could make the IP address programmable?

Re: Custom interface finally finished

Posted: Fri Oct 28, 2011 10:17 am
by bbrally
Easy. I actually had the address programmable in my early versions and then removed it as I felt my address wouldn't change.

I'm going away for the weekend, but will have a new version posted for Monday.

I'd love to hear what you think of it.

Re: Custom interface finally finished

Posted: Mon Oct 31, 2011 4:20 pm
by bbrally
I've update the program so that the first screen is a url update screen.

Quick explanation:

Valve, pump, and burners are controlled by clicking directly on the desired item. Setpoint is adjusted under the burner.

I wanted to be able to make temporary changes on the fly, so valve, pump, burner and temperature control changes take place immediatly. All others require a state save and then a "run state" to be active.

In order for changes to be permanent a "save state" must take place, otherwise all changes are temporary.

It's possible to view and modify a state other than what is currently running, in this case the background color will change to indicate that what is displayed is different than what is going on in the brewery.

A green dot indicates the displayed state/process and a green process/state name indicates the running process/state.

At the moment only one process can run at one time. When I started writing this, I didn't have any need for more than one running process.

new link: ... U4aEU/edit

I've noticed that the burner control still needs a bit of debugging.