Rahix
458d577f5d
succbone: Update panel drawings
...
/ test (push) Successful in 10s
/ test (pull_request) Successful in 10s
- Add MODBUS components
- Add network topology overview which shows addresses
2024-11-10 09:20:31 +01:00
hmelder
3b9c1ba912
succd: MODBUS library does not differentiate between TCP socket time outs and RTU time outs
/ test (pull_request) Successful in 10s
/ test (push) Successful in 10s
2024-11-10 07:06:56 +01:00
hmelder
9ec580c26f
succd: implement auto-restarting of MODBUS connection in case of network loss
/ test (push) Successful in 11s
/ test (pull_request) Successful in 10s
2024-11-10 06:51:21 +01:00
Rahix
152290f5a3
succd: Fix -KEC1 relay board updates
...
/ test (push) Successful in 10s
/ test (pull_request) Successful in 10s
The accesses to -KEC1 always time out on the attempt to update the
output values. We noticed that this is related to the timing between
the reading of the inputs and the following write to the outputs.
Fix -KEC1 accesses by waiting before sending the next request to the
board after receiving the reply for the previous one.
2024-11-10 06:36:43 +01:00
hmelder
6f93b96c39
succd: do not early return on error in modbusUpdate
...
When one device fails, this should not influence updates of the other
devices. Thus, early return was the wrong strategy here.
Instead, when communication with a device fails, skip the process data
update and continue with the next device.
2024-11-10 06:35:50 +01:00
hmelder
d8a467a0c4
succd: Split scope lock into multiple blocks
...
/ test (push) Successful in 11s
/ test (pull_request) Successful in 10s
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.
2024-11-10 05:45:58 +01:00
hmelder
e7fd2dd7d7
succd: KFA{1,6,7} are normally closed
/ test (push) Successful in 10s
/ test (pull_request) Successful in 10s
2024-11-10 05:20:24 +01:00
hmelder
606d470577
succd: Migrate to KEC1 MODBUS relay board
/ test (push) Successful in 10s
/ test (pull_request) Successful in 10s
2024-11-10 05:11:48 +01:00
Rahix
0e45650972
succd: Render temperature unit in template as well
/ test (push) Successful in 10s
/ test (pull_request) Successful in 11s
2024-11-10 02:08:05 +01:00
Rahix
edb9051708
succd: Export temperature values to prometheus
...
/ test (push) Successful in 11s
/ test (pull_request) Successful in 10s
Also add metrics for all the temperature and humidity measurements.
2024-11-10 02:04:31 +01:00
Rahix
4ac1b5eb32
succd: Add highlight colors for temperatures
...
/ test (push) Successful in 10s
/ test (pull_request) Successful in 10s
Highlight out-of-range temperatures for the user. The limits are
currently by intuition and should be reconsidered.
2024-11-10 01:59:10 +01:00
Rahix
c02d24414f
succd: Improve styling of temperature values
...
HMI design goes brrrr...
2024-11-10 01:59:10 +01:00
hmelder
2e6a3be100
Add modbus integration
2024-11-10 01:59:09 +01:00
hmelder
4edabc5c56
Add temperature and humidity stuff
2024-11-10 01:59:09 +01:00
Rahix
52231a9e9c
succbone: Add new mount
...
/ test (push) Successful in 10s
This mount is a new iteration with the following improvements:
- 25% less DIN rail space required. This allows installing 25% more
Modbus-based technology!
- Designed for a clip that can be unlatched more easily.
- Fixed the BeagleBone hole pattern to match reality (why BeagleBone,
why D:)
2024-11-09 22:21:45 +00:00
Rahix
0aba323779
succd: Export all process values as prometheus metrics
...
/ test (pull_request) Successful in 10s
/ test (push) Successful in 9s
For more detailed monitoring, let's export all process values that are
exposed to the web API as prometheus metrics.
2024-10-07 07:42:42 +02:00
Rahix
bd40c4f8df
succd: Update rough vacuum hysteresis once more
...
/ test (pull_request) Successful in 9s
/ test (push) Successful in 10s
We see fluctuation slightly above 4e-2 mbar so let's increase the
hysteresis value a bit more.
2024-10-05 19:46:14 +02:00
Rahix
d5c42a4899
succd: Hint at invalid process values
...
When the succbone connection breaks, add hints to the UI that values may
no longer be correct.
2024-10-05 19:46:14 +02:00
Rahix
637f8748a8
succd: Only show voltage on hover
...
/ test (push) Successful in 10s
Another HP HMI thing: "Only show information that is immediately
relevant". Let's hide the pirani voltage as it is mostly no longer
interesting to the user. For situations where it is, it can be revealed
by hovering over the pirani pressure value.
2024-10-05 17:37:10 +00:00
Rahix
1e21222705
succd: Optimize color usage for HP HMI
...
In the process automation world, there is a trend to move away from
colorful user-interfaces, towards more "boring" colorschemes. The
argument is about situational awareness - by only using colors to
highlight abnormal situations, they become instantly recognizable to the
operators.
This design philosophy is outlined by the ISA-101 [1] under the name
"High Performance HMI". While it covers much more than just colors, I
think this is the most important part and the one that is most
applicable for our usecase.
So let's do a bit of HP HMI - reduce colors usage such that only
important information is highlighted.
[1]: https://www.isa.org/standards-and-publications/isa-standards/isa-standards-committees/isa101
2024-10-05 17:37:10 +00:00
Rahix
7a56b0fe70
succd: Fix mobile layout
...
Use smaller font sizes for mobile devices so the full interface fits on
a single screen (mostly).
2024-10-05 17:37:10 +00:00
Rahix
f4339e54ef
succd: Fix layout on large screens
...
Make sure the grid cannot grow too large on big screens. Also slightly
adjust the breakpoint to avoid some weird artifacts.
2024-10-05 17:37:10 +00:00
Rahix
f2c0d67eed
ph00524: Add image of the back PCB side
...
/ test (pull_request) Successful in 10s
/ test (push) Successful in 10s
For documentation purposes.
2024-10-05 03:11:29 +02:00
Rahix
e2fc15ed9b
succd: Use tigher hysteresis values
...
/ test (pull_request) Successful in 10s
/ test (push) Successful in 10s
It seems we can get away with less hysteresis still. Make the values a
bit smaller.
2024-10-04 23:30:28 +02:00
Rahix
ef959f4be3
succd: Configure hysteresis for rough and high thresholds
...
Add CLI flags for rough and high hysteresis and configure default values
based on experiments.
2024-10-04 23:30:28 +02:00
Rahix
8645718748
succd: Add hysteresis feature to thresholdOutput blocks
...
Add a hysteresis value that can be optionally configured for
thresholdOutput blocks. This will hopefully help to prevent jumping
outputs from feedback that is caused by the thresholdOutput itself.
2024-10-04 23:30:28 +02:00
Rahix
ed8adad611
succd: Fix table jiggle
...
Make sure the table size doesn't dynamically jiggle with movement of
width changes of the load-average value.
2024-10-04 23:30:28 +02:00
Rahix
313569e1dc
succd: Use grid layout to show all info on a single screen
...
Use CSS grids to all information on a single screen if possible. There
is a breakpoint for smaller screens.
2024-10-04 23:30:28 +02:00
Rahix
102393a689
succbone: Update title pic
/ test (pull_request) Successful in 3s
/ test (push) Successful in 3s
2024-09-28 23:35:09 +02:00
Serge Bazanski
2899677059
succd: add info on how to run tests
/ test (pull_request) Successful in 4s
/ test (push) Successful in 4s
2024-09-28 16:13:10 +02:00
Serge Bazanski
2454a44350
succd: add ci, tests
/ test (push) Successful in 4s
2024-09-28 16:09:07 +02:00
Serge Bazanski
96e07ece2d
succd: run at 100Hz, monitor load and jitter
2024-09-28 14:27:43 +02:00
Serge Bazanski
12f6815673
succd: gofmt
2024-09-28 14:27:43 +02:00
zdmx
f5d80a335f
succd: remove redundant if
2024-09-28 11:20:25 +02:00
Serge Bazanski
fbf41203de
succd: do not engage pirani failsafe on startup, as that prohibits restarting succd when the machine runs
2024-09-28 10:23:15 +02:00
Serge Bazanski
dda098f634
succd: early refuse unsafe operations
2024-09-28 10:22:40 +02:00
Serge Bazanski
960be9cd23
succd: rewrite processing loop
2024-09-28 10:17:05 +02:00
Serge Bazanski
3d81a1f56c
succd: roll process_state.go back into process.go
2024-09-28 09:48:50 +02:00
Serge Bazanski
185525ca30
succd: downgrade high pressure lockout message to warning
2024-09-28 09:46:49 +02:00
Serge Bazanski
590e93e43e
succd: log pressures in error messages
2024-09-28 09:46:18 +02:00
Serge Bazanski
451b44e31b
succd: move out processing blocks to separate file
2024-09-28 09:39:44 +02:00
Serge Bazanski
4df00f0a63
succd: factor out ringbuffer, do not recalculate average on every request
2024-09-28 09:35:41 +02:00
Serge Bazanski
42c9ae2fa7
succd: httpServer -> webServer
2024-09-28 09:19:14 +02:00
Serge Bazanski
f66afc0c8f
succd: restyle slightly
2024-09-28 08:32:07 +02:00
Serge Bazanski
8f7ec7e141
succd: split out http server, daemon state, daemon controller
...
This improves the structure of the code, separating the data/control
interface out and then implementing the http interface as a user of this
interface.
2024-09-28 08:10:35 +02:00
Serge Bazanski
3ec6fd1d1b
succd: unify html/js data source
2024-09-28 07:54:18 +02:00
Serge Bazanski
776f7a9911
succd: add hysteresis for high pressure safety interlock
2024-09-28 07:36:37 +02:00
Serge Bazanski
239a5c40cc
succd: factor out safety status to separate struct
2024-09-28 07:36:37 +02:00
Serge Bazanski
80f482b732
succd: tristate pirani safety detection
2024-09-28 07:31:06 +02:00
Rahix
85d2afbdd0
succd: Fix javascript and template syntax errors
...
Turns out the go templating engine fails silently when unclosed strings
are present in the templated file.........
Fix javascript code :))
2024-09-28 00:05:18 +02:00