d8a467a0c4
We noticed huge load spikes with the latest changes. This was caused by the modbus goroutine blocking the entire daemon for long periods of time while doing its data transfer. Fix this by only holding the lock while performing data accesses. |
||
---|---|---|
.. | ||
.gitignore | ||
adc.go | ||
ci.sh | ||
go.mod | ||
go.sum | ||
gpio.go | ||
http.go | ||
index.html | ||
main.go | ||
modbus.go | ||
process.go | ||
process_blocks.go | ||
process_blocks_test.go | ||
process_controller.go | ||
README.md | ||
scientific.go | ||
succd.png | ||
succd.service | ||
succd.svg |
succd
A little daemon for monitoring the SEM. This is a temporary solution that runs on a BeagleBone Enhanced (succbone.lab
) and SHOULD be replaced with a proper PLC/SCADA system and general process control in the future.
Features:
- Monitors the state of the Pirani gauge via the BBE's builtin ADC.
- Allows enabling/disabling the diffusion/roughing pumps (builtin controller always keeps them enabled).
- Allows for simulating vent/pumpdown button presses.
Pins
P9 pin number | Relay number | Relay board / channel number | GPIO number | Function |
---|---|---|---|---|
27 | -KFA1 | 1 / 4 | 115 | Roughing Pump |
23 | -KFA2 | 1 / 3 | 49 | Diffusion Pump |
n/c | -KFA3 (broken) | 1 / 2 | n/c | |
12 | -KFA4 | 1 / 1 | 60 | Vent Button |
15 | -KFA5 | 2 / 4 | 48 | Pump Down Button |
11 | -KFA6 | 2 / 3 | 30 | Rough Vacuum Out |
42 | -KFA7 | 2 / 2 | 7 | High Vacuum Out |
n/c | -KFA8 | 2 / 1 | n/c |
Accessing at the lab
Go to succbone.lab.fa-fo.de.
Known issues
Sometimes the websocket doesn't connect. Refreshing the page a few times should fix it.
Running locally
$ ./ci.sh # run tests
$ go run . -fake
Then point your browser to localhost:8080
Deploying on the succbone
$ ssh root@succbone systemctl stop succd
$ GOARCH=arm go build .
$ scp succd root@succbone:/usr/bin/succd
$ ssh root@succbone systemctl start succd