Added minimal functionality for Robot teaching

- Added minimal HMI
- Added possibility to open and close all chamber doors
This commit is contained in:
2026-01-17 09:20:39 +01:00
parent 9f058db2a3
commit 2d11c43579
2274 changed files with 912690 additions and 162 deletions

View File

@@ -0,0 +1,31 @@
{
"$schema": "../../../../TcHmiFramework/Schema/ThemeDescription.Schema.json",
"controlTypeValues": {
"TcHmi.Controls.Beckhoff.TcHmiLinearGauge": {
"attributes": {
"KnobColor": {
"color": "#2775be"
},
"KnobArrowsColor": {
"color": "#FFFFFF"
}
},
"themedResources": {
"KnobConfigHorizontal": {
"imagePath": "KnobHorizontal.svg",
"width": 40,
"height": 40,
"offsetX": 20,
"offsetY": 20
},
"KnobConfigVertical": {
"imagePath": "KnobVertical.svg",
"width": 40,
"height": 40,
"offsetX": 20,
"offsetY": 20
}
}
}
}
}

View File

@@ -0,0 +1 @@
<svg id="Inhalt" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><defs><style>.cls-2{fill:#fff;}</style></defs><title>icons_error_normal</title><path class="cls-2" d="M40,54.54a2.45,2.45,0,0,1-2.46-2.42,2.44,2.44,0,1,1,4.88,0A2.46,2.46,0,0,1,40,54.54ZM41.42,46c-.06.55-.17.52-.61.52H39.16c-.43,0-.55,0-.61-.52l-.64-11.27c0-.49,0-.53,0-.7a.48.48,0,0,1,.52-.5H41.5a.54.54,0,0,1,.58.52c0,.17,0,.13,0,.62Z"/></svg>

After

Width:  |  Height:  |  Size: 418 B

View File

@@ -0,0 +1,10 @@
<svg class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-knob-svg" version="1.1" xmlns="http://www.w3.org/2000/svg"
width="40" height="40">
<defs>{KnobColorGradientDefinition}</defs>
<circle r="18px" cx="20px" cy="20px"
style="stroke-width:2px;{KnobColorFill}{KnobArrowsColorStroke}"></circle>
<path d="M 18 11 L 16 11 L 7 20 L 16 29 L 18 29 L 18 27 L 11 20 L 18 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
<path d="M 22 11 L 24 11 L 33 20 L 24 29 L 22 29 L 22 27 L 29 20 L 22 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
</svg>

After

Width:  |  Height:  |  Size: 581 B

View File

@@ -0,0 +1,11 @@
<svg class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-knob-svg" version="1.1" xmlns="http://www.w3.org/2000/svg"
width="40" height="40"
style="transform: rotate(90deg);transform-origin: center;">
<defs>{KnobColorGradientDefinition}</defs>
<circle r="18px" cx="20px" cy="20px"
style="stroke-width:2px;{KnobColorFill}{KnobArrowsColorStroke}"></circle>
<path d="M 18 11 L 16 11 L 7 20 L 16 29 L 18 29 L 18 27 L 11 20 L 18 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
<path d="M 22 11 L 24 11 L 33 20 L 24 29 L 22 29 L 22 27 L 29 20 L 22 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
</svg>

After

Width:  |  Height:  |  Size: 644 B

View File

@@ -0,0 +1,81 @@
/** Styles for the theme: Base-Dark */
/* Style for the main element */
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge,
.tchmi-linear-gauge {
--tchmi-background: var(--tchmi-background-color-1);
--tchmi-label-color: var(--tchmi-foreground-color-1);
--tchmi-description-color: var(--tchmi-foreground-color-1);
--tchmi-tick-background: var(--tchmi-foreground-color-1);
--tchmi-filler-background: var(--tchmi-highlight-color-1);
--tchmi-track-background: var(--tchmi-background-color-4);
--tchmi-set-point: var(--tchmi-foreground-color-2);
background-color: var(--tchmi-background);
box-shadow: var(--tchmi-card-shadow);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-labels,
.tchmi-linear-gauge-template-labels {
color: var(--tchmi-label-color);
font-size: 14px;
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-tick,
.tchmi-linear-gauge-template-tick {
background-color: var(--tchmi-tick-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-track,
.tchmi-linear-gauge-template-track {
background-color: var(--tchmi-track-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-filler,
.tchmi-linear-gauge-template-filler {
background-color: var(--tchmi-filler-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-description,
.tchmi-linear-gauge-template-description {
color: var(--tchmi-description-color);
font-size: 14px;
}
/* Overrides for vertical orientation*/
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge.vertical .TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-filler,
.tchmi-linear-gauge.vertical .tchmi-linear-gauge-template-filler {
background-color: var(--tchmi-filler-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point {
position: absolute;
background: var(--tchmi-set-point);
height: calc(100% + 32px);
top: -16px;
width: 2px;
transform: translate(-1px, 0);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point.vertical-setpoint {
position: absolute;
width: calc(100% + 32px);
top: auto;
left: -16px;
height: 2px;
transform: translate(0, 1px);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point.inverted-setpoint {
transform: translate(1px, 0);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point.vertical-setpoint.inverted-setpoint {
transform: translate(0, -1px);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-invalid-notification {
background-image: url('Images/invalid-notification.svg');
background-size: 200% 200%;
background-color: var(--tchmi-error-color);
background-position: 50% 50%;
}

View File

@@ -0,0 +1,31 @@
{
"$schema": "../../../../TcHmiFramework/Schema/ThemeDescription.Schema.json",
"controlTypeValues": {
"TcHmi.Controls.Beckhoff.TcHmiLinearGauge": {
"attributes": {
"KnobColor": {
"color": "#4994DA"
},
"KnobArrowsColor": {
"color": "#FFFFFF"
}
},
"themedResources": {
"KnobConfigHorizontal": {
"imagePath": "KnobHorizontal.svg",
"width": 40,
"height": 40,
"offsetX": 20,
"offsetY": 20
},
"KnobConfigVertical": {
"imagePath": "KnobVertical.svg",
"width": 40,
"height": 40,
"offsetX": 20,
"offsetY": 20
}
}
}
}
}

View File

@@ -0,0 +1 @@
<svg id="Inhalt" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><defs><style>.cls-2{fill:#fff;}</style></defs><title>icons_error_normal</title><path class="cls-2" d="M 40 49.5 C 38.7 49.5 37.6 48.5 37.5 47.1 C 37.5 45.8 38.6 44.7 40 44.7 C 41.3 44.7 42.4 45.8 42.4 47.1 C 42.4 48.4 41.3 49.5 40 49.5 Z M 41.4 41 c -0.1 0.5 -0.2 0.5 -0.6 0.5 H 39.2 c -0.4 0 -0.5 0 -0.6 -0.5 l -0.6 -11.3 c 0 -0.5 0 -0.5 0 -0.7 C 37.9 28.9 38 28.8 38.1 28.7 C 38.2 28.6 38.3 28.5 38.4 28.5 H 41.5 C 41.6 28.5 41.8 28.6 41.9 28.7 C 42 28.8 42.1 28.9 42.1 29.1 c 0 0.2 0 0.1 0 0.6 Z"/></svg>

After

Width:  |  Height:  |  Size: 580 B

View File

@@ -0,0 +1,10 @@
<svg class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-knob-svg" version="1.1" xmlns="http://www.w3.org/2000/svg"
width="40" height="40">
<defs>{KnobColorGradientDefinition}</defs>
<circle r="18px" cx="20px" cy="20px"
style="stroke-width:3px;{KnobColorFill}{KnobArrowsColorStroke}"></circle>
<path d="M 18 11 L 16 11 L 7 20 L 16 29 L 18 29 L 18 27 L 11 20 L 18 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
<path d="M 22 11 L 24 11 L 33 20 L 24 29 L 22 29 L 22 27 L 29 20 L 22 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
</svg>

After

Width:  |  Height:  |  Size: 581 B

View File

@@ -0,0 +1,11 @@
<svg class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-knob-svg" version="1.1" xmlns="http://www.w3.org/2000/svg"
width="40" height="40"
style="transform: rotate(90deg);transform-origin: center;">
<defs>{KnobColorGradientDefinition}</defs>
<circle r="18px" cx="20px" cy="20px"
style="stroke-width:3px;{KnobColorFill}{KnobArrowsColorStroke}"></circle>
<path d="M 18 11 L 16 11 L 7 20 L 16 29 L 18 29 L 18 27 L 11 20 L 18 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
<path d="M 22 11 L 24 11 L 33 20 L 24 29 L 22 29 L 22 27 L 29 20 L 22 13 Z"
style="stroke:none;{KnobArrowsColorFill}"></path>
</svg>

After

Width:  |  Height:  |  Size: 644 B

View File

@@ -0,0 +1,82 @@
/** Styles for the theme: Base */
/* Style for the main element */
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge,
.tchmi-linear-gauge {
--tchmi-background: var(--tchmi-background-color-1);
--tchmi-label-color: var(--tchmi-highlight-color-1);
--tchmi-description-color: var(--tchmi-highlight-color-1);
--tchmi-tick-background: var(--tchmi-highlight-color-1);
--tchmi-filler-background: var(--tchmi-highlight-color-1);
--tchmi-track-background: var(--tchmi-background-color-4);
--tchmi-set-point: var(--tchmi-foreground-color-1);
background-color: var(--tchmi-background);
box-shadow: var(--tchmi-card-shadow);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-labels,
.tchmi-linear-gauge-template-labels {
color: var(--tchmi-label-color);
font-size: 14px;
font-weight: 600;
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-tick,
.tchmi-linear-gauge-template-tick {
background-color: var(--tchmi-tick-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-track,
.tchmi-linear-gauge-template-track {
background-color: var(--tchmi-track-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-filler,
.tchmi-linear-gauge-template-filler {
background-color: var(--tchmi-filler-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-description,
.tchmi-linear-gauge-template-description {
color: var(--tchmi-description-color);
font-size: 14px;
}
/* Overrides for vertical orientation*/
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge.vertical .TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-filler,
.tchmi-linear-gauge.vertical .tchmi-linear-gauge-template-filler {
background-color: var(--tchmi-filler-background);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point {
position: absolute;
background: var(--tchmi-set-point);
height: calc(100% + 32px);
top: -16px;
width: 2px;
transform: translate(-1px, 0);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point.vertical-setpoint {
position: absolute;
width: calc(100% + 32px);
top: auto;
left: -16px;
height: 2px;
transform: translate(0, 1px);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point.inverted-setpoint {
transform: translate(1px, 0);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-set-point.vertical-setpoint.inverted-setpoint {
transform: translate(0, -1px);
}
.TcHmi_Controls_Beckhoff_TcHmiLinearGauge-invalid-notification {
background-image: url('Images/invalid-notification.svg');
background-size: 200% 200%;
background-color: var(--tchmi-error-color);
background-position: 50% 50%;
}