PowerPoint
ENGT 4050
Senior Technology Capstone
Fall 2013
Group B-5
*
Start Nate
*
*
Group B-5
Student 1
Student 2
Student 3
Student 4
Overview
- Brew Magic Mobile Application - Intro
- Design
- Implementation
- Results
- The Future and Further Possibilities
*
Brew Magic
*
Unitronics Vision 350
*
*
Android
*
Communication Overview
*
App Features
- Timers
- Mirrors PLC display
- Master and brewer’s timer
- Reset the brewer’s timer
- Temperature Monitoring
- Actual mash temperature
- Target mash temperature
- Toggle Power (on/off)
- Circulation pump
- Mash heating element
*
*
Goals
- Extend the functionality of the PLC to a mobile application
- Ensure desired finished product
- Increase brewer productivity
- Maintain brewery safety
*
Design
*
Start JD
*
Design Tools
Android Mobile Application
- Java Programming Language
- TCP/IP
Unitronics V350TM PLC
- Ladder Logic
- Modbus Communications Protocol
- TCP/IP
- Human Machine Interface (HMI)
*
Describe the basic components used and why, particulary the decision to use Java and Modbus.
- Modbus is an industry standard communications protocol use by PLCs
- Modus is a standard protocol available on the Unitronics PLC
- Java is well known high-level programming language that is already widely used for Andoid applications
- Java provides several free-ware packages used for Modbus communications.
*
Brew Magic Mobile:
Phase 1 Features
- WIFI connection to PLC
- DHCP or manual network addressing
- LAN Connection test
- GUI
- Sync PLC display
- Timers
- Temperature
- Alarms
- I/O
- Circulation Pump
- Heating element
*
*
Brew Magic Mobile:
Phase 2 Features
- Additional GUI functionality and refinement
- Adjustments to temperature set point and timers
Possible additional features
- Sync/store brew session data
- Connect remotely via Internet connection
*
Implementation
*
Bill Start
I will provide the basic architecture and a brief description of Modbus and how it works in our project.
*
Project Architecture/Tools
Android Mobile Application
- Java Programming Language
- TCP/IP
Unitronics V350TM PLC
- Ladder Logic
- Modbus Communications Protocol
- TCP/IP
- Human Machine Interface (HMI)
*
Describe the basic components used and why, particulary the decision to use Java and Modbus.
- Modbus is an industry standard communications protocol use by PLCs
- Modus is a standard protocol available on the Unitronics PLC
- Java is well known high-level programming language that is already widely used for Andoid applications
- Java provides several free-ware packages used for Modbus communications.
*
Modbus Protocol
Industrial communications protocol
Developed by Modicron in 1979
Has since developed into the most commonly used protocol for communication between devices
Reads the binary values in the PLC coils and Registers.
*
Provide a brief description of Modus
*
Modbus Address Scheme
*
| Data Element | PLC Value | Hex Address | Decimal Address |
| Current Temperature | MI3 – 16 bit | 0003 | 3 |
| Target Temperature | MI4 – 16 bit | 0004 | 4 |
| Brew Timer | TA7 – 32 bit | D007 | 53255 |
| Master Timer | TA 4 – 32 bit | D004 | 53525 |
| Timer Reset | MB55 – 1 bit | 0037 | 55 |
| Pump Toggle | MB34 – 1 bit | 0022 | 34 |
| Heat Toggle | MB31 – 1 bit | 001F | 31 |
Provide a brief explanation of how Modbus is use for this project.
Table provides the data values being used by the Android app.
Brief description of the java package,
- Create Connection
- Designate the addresses to read
- Run the transaction
- Obtain result.
- Issues resulting in understanding the java protocol and the data formats from the PLC.
*
Brew Magic Mobile App
*
Two gauges for brew timer and master timer
Two toggle buttons for pump/heat with popups confirming turning on or off
Two timers…one master timer and one brew timer
A brew timer reset
*
How to Communicate?
- Connection is simple
- Android needs its values
- PLC needs its values
- How to match both needs
*
Connection between the two devices is simple. Using Modbus, after we set the proper connection infromtion, we simply make a connection and send a resquest and get a response.
The hard part is that android has its data it needs and the PLC has its data it needs. The two aren’t the same
Thus we need some type of conversion to convert between the two types of data
*
Solution
Graphical display
Conversion
Modbus Communication
IN
OUT
Android
This is the solution for the android side.
We have the graphical display(slide 19) which shows the app to a graphical way to the user
For modbus to communicate with the plc, we need to set values in a certain way. Thus to transfer between the two we need a conversion that handles these conversions.
Now one may ask why not just send the data from the graphical display directly to the plc by using whatever the plc needs. The reason why we don’t do this and have a conversion is for future needs. If a new update comes to the graphics or to modbus, we do not have to change values on each sides. If we have set values for the graphics display, we simply need to reference the values and the conversion will handle sending the proper data. Also if modbus changes, we simply need to update the modbus communication and not what values are coming in to the android as the converiso handles this.
So rather then send data in the form the plc needs, we convert it so both sides are independent of each other. Their only dependcy is through the converison
*
Solution(cont.)
Application
PLC
Wireless connection
Once we have prepped the data to send, modbus handles the communication to the wireless connection. It sends it over the connection till it arrives at the PLC and in which the PLC takes over and performs the desired function
The opposite goes from PLC to android. We send a request to the plc, get the information needed and send it to the android
*
Issues
- Layout
- Sizing
- What goes where
- Best flow of application
- Connectivity
- Right function
The android layout was a small problem
Correct sizing of buttons etc
Putting buttons, etc. where the go
Finding the best layout that matches an average users needs
Connectivity
Sending it to the correct area on the plc
*
Results
*
Start Jason
*
Project Deliverables
- Brew Magic Mobile
- Text fields to send and receive input from the PLC
- Created buttons to send shutdown commands
- Developed special graphics to display current temperatures for both the pump and heater
- Displays to output from the PLC
- Developed communication classes so the PLC and GUI could translate and communicate with each other (MODBUS and Java)
- Standard Project Deliverables and Assignments
*
Project Timeline
- Milestones and Gantt Chart
- Phase I completed
*
Design Phase
Build Phase
Test Phase
Implement Phase
Phase I
Phase II
The Future and Further Possibilities
*
*
Issues to Be Resolved
- Timer reset button
- DHCP
- App
- PLC
- Pop-up notifications
*
Further Possibilities
- Change target temperature
- Mirror notifications from the PLC
- Toggle temp displays Celsius/Fahrenheit
- Brew Magic software update integration
*
Even Further
- Add or Modify Recipes
- Add notes to brew session
- WAN access
- Graphic refinement
- IOS versions
*
Proven Capabilities
- Connect Mobile app to PLC
- Send and receive data from registers
- Mirror real-time status of PLC coils
�This can be done with other PLC’s!
*
Questions
?
*
Thank You!
*
Cheers!
Image Sources
http://i171.photobucket.com/albums/u307/andrewjensen_photos/maintainingmashtemp.jpg
http://mondaynightbrewing.com/2009/06/15/a-serious-system-upgrade-to-brew-magic/
http://en.wikipedia.org/wiki/Index_of_Android_OS_articles
https://brewmagic.com/wp-content/uploads/Brew-Magic-Controls1.jpg
*