$tag['type_label'], 'count' => 0, ]; } $tagTypes[$typeKey]['count']++; } uasort( $tagTypes, static function (array $left, array $right): int { return strcasecmp($left['label'], $right['label']); } ); } catch (Throwable $exception) { $configError = 'Unable to load tag configuration.'; $configErrorDetail = $exception->getMessage(); error_log('Control tag configuration error: ' . $configErrorDetail); } $hasTags = $configError === null && count($tagOptions) > 0; require __DIR__ . '/includes/layout/header.php'; require __DIR__ . '/menuinclude.php'; ?>

Manage live tag overrides

Select a tag, review the live value, then stage a tweak or toggle the state. Writes commit instantly through Kepware.

No control-enabled tags found.

Add entries to config/control-tags.php to expose Kepware tags for override access. Each entry should define a friendly name, a Kepware tag (or array key), and optional guardrails such as step, min, or max.

Current value
Use refresh after out-of-band changes to confirm the live reading.