Skip to content

Commit 4db6cec

Browse files
Merged
2 parents a0cf1f9 + fe6aba5 commit 4db6cec

6 files changed

+61
-33
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
/grafana/plugins
2-
/grafana/plugins/
2+
/grafana/plugins/
3+
tmp
4+
tmp/

README.md

+46-18
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22

33
> Open source Manufacturing Execution and Performance Monitoring built on [Grafana](https://grafana.com), [Influx](https://www.influxdata.com/), and [Postgres](https://www.postgresql.org/).
44
5-
Define your master data, push your machine metrics to modernize your manufacturing and start collecting and analysing your manufacturing data with Libre. Libre is an open source manufacturing execution and performance monitoring tool.
5+
Define your master data, push your machine metrics, start collecting and analyzing your manufacturing data with Libre. Libre is an open source manufacturing execution and performance monitoring tool.
66

77
- _Define:_ Your manufacturing master data including your enterprise model, downtime reasons, products, ingredients and product steps.
88
- _Capture:_ Connect up your machines using a variety of methods into key buckets with an InfluxDB Historian
9-
- _Use:_ Schedullers create and schedule orders, operators execute orders and capture downtime reasons.
9+
- _Use:_ Schedulers create and schedule orders, operators execute orders and capture downtime reasons.
1010
- _Improve:_ Get key insights into your manufacturing, understand your biggest losses, visualize OEE.
11-
- _Extensible:_ Built on Grafana, Influx and postgres push your key process parameters to view alongside your production dashboards. Extend with your Grafana dashboards.
11+
- _Extensible:_ Built on Grafana, Influx and postgres push your key process parameters to view alongside your production dashboards. Extend with your Grafana dashboards. Free to innovate.
12+
13+
![Libre](docs/libre-line-performance.png)
1214

1315
## Try it out
1416

15-
Use the [Libre Simulator](https://github.com/Spruik/Libre-Simulator) to test out Libre. The quickest way to run Libre and the Libre Simulator it is with with docker-compose `docker-compose -f docker-compose.yml -f docker-compose.sim.yml up -d` command. This will start up Libre and the simulator together. After running the command, browse to `http://localhost:3000` to access Grafana and `http://localhost:1880` to control the simulation.
17+
Use the [Libre Simulator](https://github.com/Spruik/Libre-Simulator) to test out Libre. The quickest way to run Libre and the Libre Simulator it is with the docker-compose command `docker-compose -f docker-compose.yml -f docker-compose.sim.yml up -d`. This will start up Libre and the simulator together. After running the command, browse to `http://localhost:3000` to access Grafana and `http://localhost:1880/ui` to control the simulation.
1618

1719
See [Try it out](/docs/try-it-out.md) for more information.
1820

@@ -40,16 +42,21 @@ Receiving objects: 100% (165/165), 176.45 KiB | 3.60 MiB/s, done.
4042
Resolving deltas: 100% (49/49), done.
4143

4244
$ docker-compose up -d
43-
Creating libre-grafana_postgres_1 ... done
44-
Creating libre-grafana_influx_1 ... done
45-
Creating libre-grafana_postREST_1 ... done
46-
Creating libre-grafana_grafana_1 ... done
45+
Creating network "libre_default" with the default driver
46+
Creating volume "libre_grafana_plugins" with default driver
47+
Creating volume "libre_grafana_provisioning" with default driver
48+
Creating volume "libre_postgres_data" with default driver
49+
Creating volume "libre_influx_data" with default driver
50+
Creating libre_influx_1 ... done
51+
Creating libre_postgres_1 ... done
52+
Creating libre_grafana_1 ... done
53+
Creating libre_postREST_1 ... done
4754

4855
```
4956

5057
#### Set Grafana Admin Password
5158

52-
Once Libre is installed and running, navigate to `http://<server>:3000/` and and use the default grafana login username `admin` and password `admin` to login. You will then be prompted to change the default password.
59+
Once Libre is installed and running, navigate to `http://<server>:3000/` and use the default Grafana login username `admin` and password `admin` to login. You will then be prompted to change the default password.
5360

5461
### Define your factory Model
5562

@@ -63,7 +70,7 @@ Next, define your reason codes. Long click ReasonCodes in the Reason Codes panel
6370
6471
![Reason Codes](/docs/reason-codes.png)
6572

66-
Raw Materials are added during product operations. Products are made up of a number of product operations. Finally products can be categorized by groups. Start by entering in Raw Material information by clicking the (+) on the Raw Material panel. These are the ingredients that go into your final product. Once raw materials have been added, add in the required Product Operationsin the Product Operation panel. Product Operations are the steps to manufacture the final product and is where a raw ingredient is added. For example `Fill Tank` or `Add Label`.
73+
Raw Materials are added during product operations. Products are made up of a number of product operations. Finally, products can be categorized by groups. Start by entering in Raw Material information by clicking the (+) on the Raw Material panel. These are the ingredients that go into your final product. Once raw materials have been added, add in the required Product Operations in the Product Operation panel. Product Operations are the steps to manufacture the final product and is where a raw ingredient is added. For example `Fill Tank` or `Add Label`.
6774

6875
![Raw Materials](docs/raw-material.png)
6976

@@ -73,9 +80,9 @@ Once Raw Materials and Product Operations are added create a Product group using
7380

7481
![Products](docs/product.png)
7582

76-
Now that you have defined your factory model, downtime reasons, ingredients, product operations and products your are ready to start schedulling orders.
83+
Now that you have defined your factory model, downtime reasons, ingredients, product operations and products your are ready to start scheduling orders.
7784

78-
### Schedulling Orders
85+
### Scheduling Orders
7986

8087
Schedule orders on your lines using the `SmartFactory/Schedulling` dashboard. To setup use the `Production Line Start Time Setter` to define the start time for each line. This is the time whereby an order will be first scheduled for the day. For 24hr operation, set to 12:00AM.
8188

@@ -89,11 +96,11 @@ Orders have the following state model:
8996

9097
The `SmartFactory/Line Schedule` dashboard shows the schedule for the selected manufacturing line. Orders can be set to next/running so that they are visible on the `SmartFactory/Line Performance` dashboard.
9198

92-
### Executing Orders and Integrating Machines
99+
### Executing Orders
93100

94101
Orders be executed by clicking from the list in either `SmartFactory/Line Performance` or `SmartFactory/Line Schedule` and selecting Running. Only a single order can be Running at once per line. The Paused state can be used to pause orders until they are ready to be execute on again or completed. Once an order is running machine state and counts are logged against that order.
95102

96-
#### Integrating Machine State
103+
### Integrating Machines
97104

98105
Machines will need to push data to the following buckets and schemas.
99106

@@ -155,21 +162,42 @@ The machine will need to publish to the `OrderPerformance` Influx bucket with th
155162
| order_id | tag | string | Current order id |
156163
| issued_qty | field | number | Count of good products this order |
157164

158-
### Analysing the Manufacturing Data
165+
### Analyzing the Manufacturing Data
166+
167+
Analyse your manufacturing data using the `SmartFactory/Line Performance` and `SmartFactory/Analysis` dashboards. Line Performance offers analysis of performance and availability whilst the Analysis dashboard drills into time loss through Downtime Pareto graphs and sunbursts of both Downtime duration and frequency.
168+
169+
## Developing
170+
171+
Prerequisites
172+
173+
- docker (>= 18 required)
174+
- git (>= 1.20 required)
175+
176+
1. Run the docker compose with the docker-compose.dev.yl file. Include the --build argument to build containers from source. `docker-compose -f docker-compose.dev.yml up --build`
177+
2. To clear data whilst developing ensure to remove volumes `docker-compose -f docker-compose.dev.yml rm -v`
178+
179+
## Building
180+
181+
Prerequisites
182+
183+
- docker (>= 18 required)
184+
- git (>= 1.20 required)
159185

160-
Analyse your manufacturing data using the `SmartFactory/Line Performance` and `SmartFactory/Analysis` dashboards. Line Performance offers analysis of performance and availability whilst the Analysis dashboard drills into time loss through Downtime paretos and sunbursts of both Downtime duration and frequency.
186+
1. Clone this repository with `git clone https://github.com/Spruik/Libre` and enter directory `cd Libre`
187+
2. Change directory into grafana and build the container `cd grafana`, `docker build . -t spruiktec/libre-grafana`
188+
3. Change directory up one level, into postgres and build the container `cd .. && cd postgres`, `docker build . -t spruiktec/libre-postgres`
161189

162190
## Contributing
163191

164192
For any issue, there are fundamentally three ways an individual can contribute:
165193

166194
- By opening the issue for discussion: For instance, if you believe that you have uncovered a bug in, creating a new issue in the [GitHub issue tracker](https://github.com/Spruik/Libre/issues) is the way to report it.
167-
- By helping to triage the issue: This can be done either by providing supporting details (a test case that demonstrates a bug), or providing suggestions on how to address the issue.
195+
- By helping to triage the issue: This can be done either by providing supporting details (a test case that demonstrates a bug) or providing suggestions on how to address the issue.
168196
- By helping to resolve the issue: Typically, this is done either in the form of demonstrating that the issue reported is not a problem after all, or more often, by opening a Pull Request that changes some bit of something in the panel in a concrete and reviewable manner.
169197

170198
## License
171199

172-
Libre is distrbuted under the [Apache 2.0 License](https://github.com/spruik/libre/blob/master/LICENSE).
200+
Libre is distributed under the [Apache 2.0 License](https://github.com/spruik/libre/blob/master/LICENSE).
173201

174202
## Change Log
175203

docs/libre-line-performance.png

163 KB
Loading

docs/libre-order-state-model.drawio

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<mxfile host="Electron" modified="2020-08-20T13:37:06.210Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.0.3 Chrome/80.0.3987.163 Electron/8.2.1 Safari/537.36" etag="aGvjdjCgljemfaDek0y0" version="13.0.3" type="device"><diagram name="Page-1" id="edf60f1a-56cd-e834-aa8a-f176f3a09ee4">7VvbcpswEP0aPyYDyFz82NpxM+llOk1veeooZg00MvIIObbz9RUgGTBxUBzXJhnykGFX2pXQ7jlapHEPDWerDwzPw8/UB9KzDH/VQ6OeZQ08U/xPFetcYbv9XBGwyM9VZqG4jh5AKg2pXUQ+JJWOnFLCo3lVOaFxDBNe0WHG6LLabUpJddQ5DqCmuJ5gUtf+inweSq1pGEXDJURBKIf2bNlwiyd3AaOLWI7Xs9A0+8ubZ1j5kv2TEPt0WVKhix4aMkp5/jRbDYGkS6uWLbcb72jdzJtBzHUMHANcwzUdd4BMhGBwhmSg7jFZgHqHbKZ8rVYHfLFYUqSMhzSgMSYXhfZ9tgKQjmEIKeQzIh5N8UjwLZD3m0UaUkKZaIppnJolHDMus8EWMsT+uzSaQpwQnCTR5HsYxXnDOCLKqZBKRn+B87WU8YJToSom+YnSubRKOKN3m/CmmimN+RjPIpJm7U9gPo6xVEt/XjYaZ+vf8tUy4SYVzm0ljlblxtFaSauI/1YzFs8lKyEVRqmgbOrhlBFO6IJNZDg+PvxYTuHXaHjl3mDvzyVcjR7OFGowC4A/0U9GNw1paQCZLB+AzkC8g+ggkX1mnDuO4+ZG6ypoGRDMo/sqhLBEYrBxtfH+lUbirYoudDpNxFxL6SoeSpMoVFkSP57QTy1GKaeHDDAXCbqd2ssw4nA9x9naLgW3VdO3mtcb8Opk9n7JhkkUxGn6iwQAptrlfDM3AgZqLEE24+xvkzn3wDisdnLD07FWnKY4fHDuOblmWXCiJzuFJTbsG7tjXwntc+No1eL4DQjg5PUH8uXRMt3WhQvVwvUFVrwLlTVoXai6XX/PXd/ab9u3dPb9rU15v0LA0iwEUIv2/aKPgphXRYxXIEZ5yRdC2j3halN673aVr1XN1aGqEbu+iy3iOIqDjhn7ZuuY0emYsW3fQzq82Mh3tiZ/tpoX7S28uPvzYt84NS+6NaQN6WxOgENHjDZqHTF6HTG+RmJsJDxbk0DdVhNjM5vpEqPdPzUxDurESGh36CFanPadUakk73jxjfGiq8mLgzbzouMcjBfdkxeMZv1c/ytedMTYq39Im6gFzFg/vu+YcQcznrt2hRw1qVHZSXY0j8WNujWj2abbxTdOjvXblw5tu9BmVdBmaqPNKqPNOBbazGedcbUWbVtHGqaxP9xqvvrHx1t3haaPtz03t5OgzXoLYEPNhxi6WEPNd3H/G2r1G7QOao9DzawArVRVNmGt8o3tHu0jG2mCzerAdiywdRege+5rumXkic6ztKvIVh/09/uHqyItr9nX/0Zb/RK0Q9tB0VatIo92QqJbRbb69HgbIM4LvtiMRlc7oCZSEq9L3eZph+SRF1OT3joKtQpU75zcoMlEPOTz0ES/EIsfdeTdix/OoIt/</diagram></mxfile>
1+
<mxfile host="Electron" modified="2020-08-20T15:21:34.592Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.0.3 Chrome/80.0.3987.163 Electron/8.2.1 Safari/537.36" etag="hrPZ4yk3nCuzg_U7t5xm" version="13.0.3" type="device"><diagram name="Page-1" id="edf60f1a-56cd-e834-aa8a-f176f3a09ee4">7VtbU6MwFP41fdQBwq2Pa2t13Ms46+6qTzuxpMCakk5Ibeuv3wAJl2JLrLVFBx8czknOScg535dDMu2BwXR5QeEs+E48hHuG5i17YNgzDMfs8/+JYpUpTNPMFD4NvUylF4qb8BkJpSa089BDcaUjIwSzcFZVjkkUoTGr6CClZFHtNiG4OuoM+qimuBlDXNfehh4LhFbXtKLhEoV+IIZ2LdHwAMePPiXzSIzXM8Ak/cuap1D6Ev3jAHpkUVKB8x4YUEJY9jRdDhBOllYuW2Y32tCaz5uiiKkY2BpyNEe3nT7QAUD9EyAC9QTxHMl3SGfKVnJ1kMcXS4iEsoD4JIL4vNCepSuAkjE0LgVsivmjzh8xfED4LF+kAcGE8qaIRIlZzCBlIhssLqPI+5JEk4tjDOM4HP8KwihrGIVYOuVSyegfYmwlZDhnhKuKSX4jZCasYkbJYx7eRDMhERvBaYiTrP2DqAcjKNTCn5uOxujqTrxaKtwnwqklxeGy3DhcSWkZsjs5Y/5csuJSYZQI0qYeThHhmMzpWITj6/PvxQTdDgdXzj10/16iq+HziUQNpD5iW/qJ6CYhLQ0gkuUCkSni78A7CGSfaKe2bTuZ0aoKWoowZOFTFUJQINHPXeXer0nI36roQiaTmM+1lK78oTSJQpUm8csJvW0xSjk9oAgynqDrqb0IQoZuZjBd2wXntmr6VvM6B69KZu+WbBCHfpSkP08ARGW7mG/qhsNAjsXJZpT+5ZnzhChDy43csD3WktNEmK3+qWtnmkXBia7oFJTY0NQ2x74S2tfG0ajF8SeC3uqjR/HtodKd1sUK1GL1Ay1ZFyqj37pQdVv+jlu+sdueb6hs+ms78m5VgKFYBYAWbfpFHwkxt4oYt0CM9JIthLDb4iqvuze7ytaq5mpfpYhV38LmURRGfseMpt46ZrQ7Zmzbx5AKLzbynaXIn63mRWsNL87uvGhqx+ZFp4a0AZnOMGKoI0YLtI4Y3Y4YPyIxNhKepUigTquJsZnNVInRMo9NjP06MWISf/yjq7fTot2+AyqZ5B0vfjJedBR5sd9mXrTtvfGic/SCUa8f6l/DeUeMvfqHtA5awIz1s/uOGTcw46ljVchRkRqlnWBH/VDcqFoz6m26Wvzk5Fi/fenQtgltRgVtujLajDLatEOhTX/VGVdr0bZ2pKFru8Ot5ss8PN66KzR1vO24uR0FbcZnABtoPsRQxRpovot7b6jVb9A6qL0MNb0CtFJV2YS1yje2c7CPbKAINqMD26HA1l2A7rivqZaRRzrPUq4iW33Qb5r7qyINt9nXe6OtfgnaoW2vaKtWkQc7IVGtIlt9erwOEPsNX2xao6sNUOMpCVelbrOkQ/zCi8lJrx2FGgWqN06u32TCH7J5KKKfi8UvOrLuxa9mwPl/</diagram></mxfile>

docs/libre-order-state-model.png

-299 Bytes
Loading

docs/try-it-out.md

+11-13
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,21 @@ Resolving deltas: 100% (49/49), done.
2828

2929
```shell
3030
$ docker-compose -f docker-compose.yml -f docker-compose.sim.yml up -d
31-
Creating network "libre-grafana_default" with the default driver
32-
Creating volume "libre-grafana_grafana_plugins" with default driver
33-
Creating volume "libre-grafana_grafana_provisioning" with default driver
34-
Creating volume "libre-grafana_postgres_data" with default driver
35-
Creating volume "libre-grafana_influx_data" with default driver
36-
Creating libre-grafana_influx_1 ... done
37-
Creating libre-grafana_postgres_1 ... done
38-
Recreating libre-grafana_simulator_1 ... done
39-
Creating libre-grafana_postREST_1 ... done
40-
Creating libre-grafana_grafana_1 ... done
31+
Creating network "libre_default" with the default driver
32+
Creating volume "libre_grafana_plugins" with default driver
33+
Creating volume "libre_grafana_provisioning" with default driver
34+
Creating volume "libre_postgres_data" with default driver
35+
Creating volume "libre_influx_data" with default driver
36+
Creating libre_influx_1 ... done
37+
Creating libre_postgres_1 ... done
38+
Creating libre_simulator_1 ... done
39+
Creating libre_postREST_1 ... done
40+
Creating libre_grafana_1 ... done
4141

4242
```
4343

4444
3. Navigate to `https://localhost:3000` log into grafana with username admin and password admin. Explore the SmartFactory dashboard folder.
4545

46-
4. Navigate to `https://localhost:3000` to start/stop and complete a line.
46+
4. Navigate to `https://localhost:1880/ui` to start/stop and complete a line.
4747

4848
![Simulation](simulator.png)
49-
50-
## Example

0 commit comments

Comments
 (0)