User manual
Dashboards and widgets
This is the operating guide for the preview and for the same widgets in the Ignition Perspective project. Open Line Animation on the Dashboards page to run the line that feeds OEE, orders, schedule, downtime, and the OEE Engine.
Create a dashboard
- On Dashboards, choose New dashboard and type a name.
- Open the new card. Choose Edit, then Add widget.
- Pick a widget. The configuration sheet opens so you can set the title, tag or topic, and colors.
- Drag the tile to move it. Drag the corner to resize it. Choose Done when the layout is right.
- Edit, then the trash icon, deletes that dashboard. Widgets already on other dashboards are not affected.
Four boards are already there: North Field, Process Hall, Line Animation, and Widget Gallery. Widget Gallery has one of each widget. Copy the idea onto your own board by adding the same widget from the catalog.
Line Animation
The line is a widget machine, a conveyor, a quality station, an infeed sensor, a defect sensor, an outfeed sensor, a reject chute, and a good bin. Parts spawn at the machine and travel at the Rate you set. The belt and the parts share one speed, so the widgets stay on the belt.
- Start / Stop. Stop ends the run and opens a downtime row. Start closes it.
- Rate. Pieces per minute. This is the ideal rate used by performance.
- Defect. The next part is rejected at the defect sensor.
- Reason. Dropdown used for the next stop, and for a stop that is already open. Choices are Unplanned, Fault, No material, Changeover, and Break.
- Reset. Clears counts, the schedule progress, downtime, and the OEE Engine history for this topic.
- Topic. Default EET124/OEE/DrJeff. Every MES tile on the same topic follows this line.
MQTT is published as individual topics and as one flat JSON payload on the base topic. The values are running, rate, defect, made, good, reject, infeed, and outfeed. Example: EET124/OEE/DrJeff/good. The Ignition line also writes those values under the tag folder [default]MQTT Tags.
The SQL browser under the conveyor lists each table and the first 10 rows. In the preview those rows are the live line state. On the gateway they are the real database, using the external MySQL connection when that connection is enabled.
Database connection
The MySQL Connection widget is the login for an external database. Enter host, port, database name, user, and password, then choose Save connection in the preview or Test and save in Ignition.
- A successful test sets mes_connection.enabled to 1.
- From then on, the line writes mes_snapshot, mes_event, mes_order, and mes_downtime to that database.
- The connection row itself stays in the project database so the gateway can find the login.
- If the test fails, MES keeps using the project database. The gateway needs the MySQL or MariaDB JDBC driver, which is the same driver the project database already uses.
- Leave the password field blank only when the database account has no password. Do not put the password in a widget title or an MQTT topic.
Tables
mes_snapshot
One current row per line. The live MES tiles read this.
| line_key | MQTT topic, usually EET124/OEE/DrJeff |
| running | 1 while Start is on, 0 while Stop is on |
| rate | Pieces per minute from the Rate slider |
| ideal_rate | Same rate, used as the performance target |
| made | Parts that left the machine since the last reset |
| good_count | Parts that reached the good bin |
| reject_count | Parts sent to reject |
| run_seconds | Seconds the line has been running |
| down_seconds | Seconds the line has been stopped |
| availability | Run time ÷ (run + down), percent |
| performance | Made ÷ (rate × run minutes), percent, capped at 100 |
| quality | Good ÷ made, percent |
| oee | Availability × performance × quality ÷ 10000 |
| updated_at | Timestamp of the last write |
mes_event
A history row each time a count or run state changes. The OEE Engine reads this over the interval.
| id | Row number |
| line_key | Same topic as the snapshot |
| event_type | START, COUNT, REJECT, or STATE |
| made, good_count, reject_count | Counters at that moment |
| rate | Pieces per minute at that moment |
| run_seconds, down_seconds | Accumulated time, so a window can subtract the first row from the last |
| availability, performance, quality, oee | Factors at that moment, not the window result |
| detail | Reserved note, usually empty |
| ts | yyyy-MM-dd HH:mm:ss |
mes_order
Production orders for the line. Release on the SKU widget inserts the active order at the front.
| line_key, order_no | Together they identify the order, for example WO-104512 |
| product | SKU and name, such as SKU-100 Widget A |
| target_qty | Quantity you released |
| good_count, reject_count | Progress against that order |
| status | Scheduled, Running, Down, or Complete |
| shift_name | Shift label |
| sort_order | 0 is the active order |
| planned_start, planned_end | Computed from the remaining quantity and the current rate |
mes_downtime
One row each time the line goes from running to stopped.
| id | Row number |
| line_key | Line topic |
| reason | The dropdown value: Unplanned, Fault, No material, Changeover, or Break |
| start_ts | When Stop was pressed |
| end_ts | When Start was pressed. Empty while the stop is still open |
| open_flag | 1 while the line is still down |
mes_connection
The external MySQL login. One row, id = 1. The password is stored here. Do not share the table.
| host, port | Server address. Port 3306 is the usual MySQL port |
| db_name | Database that will hold the MES tables |
| username, password | Login used by the gateway |
| enabled | 1 after Test and save succeeds. MES writes then go to this database instead of the project database |
OEE Engine
The OEE tile on the line shows overall equipment effectiveness since the last reset. The OEE Engine is different. It queries the history inside a time window and calculates OEE for that window only.
The interval defaults to 5 minutes. Change it on the widget, from 1 to 240 minutes. On the gateway the engine reads mes_event rows whose timestamp falls inside the window. It subtracts the oldest row in the window from the newest:
- Availability = run seconds gained ÷ (run seconds gained + down seconds gained).
- Performance = parts made in the window ÷ (rate × run minutes in the window). The result is capped at 100.
- Quality = good parts in the window ÷ parts made in the window.
- OEE = availability × performance × quality ÷ 10000.
The engine needs two samples in the window before it shows a number. Start the line and wait a few seconds. Reset clears the sample log, so the window starts over.
Widget catalog
Display
- Label. Static or tag-bound text. Use for titles, units, and status copy.
- Numeric Display. Live formatted value with units — Perspective numeric label.
- KPI Card. Large process value with sparkline and quality.
- LED Display. Segment-style readout for process numbers.
- Status Light. Boolean indicator with on/off colors.
- Gauge. Radial gauge with range bands and needle.
- Moving Analog. Bar indicator with desired and alarm bands.
Input
- Writable Field. Text field that writes a string tag and publishes MQTT.
- MQTT Numeric. Numeric entry that publishes to an MQTT topic on write.
- Slider. Write a numeric setpoint with a slider.
- Toggle Switch. Bidirectional boolean write.
- Multi-State Button. Off / Auto / Hand (or custom states) write to an integer tag.
- Write Button. Momentary write of a configured value to a tag.
History
- Sparkline. Compact history of a numeric tag.
- Time Series Chart. Realtime trend with axes and live updates.
Agriculture
- Soil Sensor. Ag-demo soil card: moisture and temperature together.
- Irrigation Control. Ag-demo irrigation: flow setpoint plus Off / Auto / Hand.
- Weather Station. Air temp, humidity, wind, and precipitation.
MQTT
- MQTT Monitor. Live topic stream from the in-app MQTT distributor.
- MQTT Explorer. Topic tree, payload, publish, and optional Sparkplug B decode. Follows the broker switch.
Alarms
- Alarm Status. Active process alarms with priority.
OEE
- OEE A · Q · P. Overall Equipment Effectiveness with Availability, Performance, Quality gauges and loss bands.
Maps
- MQTT Map. Leaflet map of GPS fixes from MQTT. Each location carries three live data points.
- GPS Beacon. Names a surface node, publishes GPS plus temp and humidity, and jumps the map to that pin.
Line
- Line Animation. Widget machine and conveyor, with a live SQL browser of the first 10 rows in each table.
MES
- MES OEE. Overall equipment effectiveness from the Line Animation: availability, performance, and quality.
- MES Production Order. The order the line is running, with target, good count, and rejects.
- MES Scheduling. Planned start and finish for the orders on this line, using the current rate.
- MES Downtime. Stops from the Line Animation, with a reason and how long the line was down.
- MES SKU Order. Pick a SKU and quantity, release it onto the line, or reset the simulation.
- MySQL Connection. Host, database, user, and password for an external MySQL database. The gateway uses it for MES tables.
- OEE Engine. OEE for a time window. Default 5 minutes, adjustable. Reads the line history rather than the total since reset.
Luna
- Luna Link Budget. HuLC RF/optical link: SNR, fade margin, dust attenuation, DTE vs relay.
- Earth–Moon Delay. One-way light time plus next AOS/LOS for the orbital relay.
- Surface Mesh. Lander, rover, habitat, and EVA wireless nodes for HuLC surface architecture.
- DTN Bundle Queue. Delay-tolerant networking custody and store-and-forward queue.
- Antenna Pointing. Azimuth / elevation track for lander high-gain or relay dish.