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,135 @@
{
"$schema": "../../TcHmiFramework/Schema/ControlDescription.Schema.json",
"apiVersion": 1,
"name": "TcHmiThermometer",
"namespace": "TcHmi.Controls.Beckhoff",
"displayName": "Thermometer",
"version": {
"full": "14.4.1.0",
"major": 14,
"minor": 4,
"build": 1,
"revision": 0
},
"template": "Template.html",
"visible": true,
"themeable": "Standard",
"base": "TcHmi.Controls.Beckhoff.TcHmiLinearGauge",
"description": "A simple thermometer control.",
"defaultDesignerEvent": "",
"properties": {
"containerControl": false,
"geometry": {
"width": 128,
"height": 215
}
},
"icons": [
{
"name": "Icons/16x16.png",
"width": 16,
"height": 16
}
],
"dependencyFiles": [
{
"name": "../dist/TcHmiThermometer/TcHmiThermometer.esm.js",
"type": "EsModule",
"description": "Contains all the main logic as ES module."
},
{
"name": "Style.css",
"type": "Stylesheet",
"description": "Theme independent style"
}
],
"themes": {
"Base": {
"resources": [
{
"name": "Themes/Base/Style.css",
"type": "Stylesheet",
"description": "Theme dependent style"
}
]
},
"Base-Dark": {
"resources": [
{
"name": "Themes/Base-Dark/Style.css",
"type": "Stylesheet",
"description": "Theme dependent style"
}
]
}
},
"attributes": [
{
"name": "data-tchmi-orientation",
"propertyName": "Orientation",
"propertySetterName": "setOrientation",
"propertyGetterName": "getOrientation",
"displayName": "Orientation",
"visible": true,
"themeable": "Advanced",
"displayPriority": 10,
"type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLinearGauge.Orientation",
"category": "Appearance",
"description": "The orientation of the gauge.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": "Vertical"
},
{
"name": "data-tchmi-start-from-zero",
"propertyName": "StartFromZero",
"propertySetterName": "setStartFromZero",
"propertyGetterName": "getStartFromZero",
"displayName": "Start From Zero",
"visible": false,
"themeable": "Standard",
"displayPriority": 60,
"type": "tchmi:general#/definitions/Boolean",
"category": "Value",
"description": "Whether to start the progress bar at the zero mark or on the left side. This has no effect if the min value is equal to or greater than zero.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": false
},
{
"name": "data-tchmi-progress-foreground-color",
"propertyName": "ProgressForegroundColor",
"propertySetterName": "setProgressForegroundColor",
"propertyGetterName": "getProgressForegroundColor",
"displayName": "Progress Foreground Color",
"visible": true,
"themeable": "Standard",
"displayPriority": 10,
"type": "tchmi:framework#/definitions/SolidColor",
"category": "Colors",
"description": "Fill color of the progress bar.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"allowSymbolExpressionsInObject": true,
"defaultValue": null,
"defaultValueInternal": null
}
],
"attributeCategories": [],
"themedResources": [],
"functions": [],
"events": [],
"dataTypes": [
{
"schema": "Schema/Types.Schema.json"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

View File

@@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema",
"definitions": {
"TcHmi.Controls.Beckhoff.TcHmiThermometer": {
"type": "object",
"frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl",
"frameworkControlType": "TcHmiThermometer",
"frameworkControlNamespace": "TcHmi.Controls.Beckhoff"
},
"TcHmiThermometer": {
"$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiThermometer"
}
}
}

View File

@@ -0,0 +1,84 @@
.TcHmi_Controls_Beckhoff_TcHmiThermometer {
}
/*General*/
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template-track::before {
content: '';
width: var(--bulb-radius);
height: var(--bulb-radius);
position: absolute;
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template-track::after {
content: '';
width: calc(2 * var(--bulb-radius));
height: calc(2 * var(--bulb-radius));
position: absolute;
border-radius: 100%;
}
/*Vertical*/
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template.vertical {
padding-bottom: calc(2.5 * var(--bulb-radius));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.vertical
.tchmi-linear-gauge-template-track::before {
left: 0px;
top: 100%;
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.vertical
.tchmi-linear-gauge-template-track::after {
left: calc(-0.5 * var(--bulb-radius));
top: calc(100% + 0.5 * var(--bulb-radius));
}
/*VertivalInverted*/
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template.vertical-inverted {
padding-top: calc(2.5 * var(--bulb-radius));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.vertical-inverted
.tchmi-linear-gauge-template-track::before {
left: 0px;
bottom: 100%;
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.vertical-inverted
.tchmi-linear-gauge-template-track::after {
left: calc(-0.5 * var(--bulb-radius));
bottom: calc(100% + 0.5 * var(--bulb-radius));
}
/*Horizontal*/
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template.horizontal {
padding-left: calc(2.5 * var(--bulb-radius));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.horizontal
.tchmi-linear-gauge-template-track::before {
left: calc(-1 * var(--bulb-radius));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.horizontal
.tchmi-linear-gauge-template-track::after {
top: calc(-0.5 * var(--bulb-radius));
right: calc(100% + 0.5 * var(--bulb-radius));
}
/*HorizontalInverted*/
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template.horizontal-inverted {
padding-right: calc(2.5 * var(--bulb-radius));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.horizontal-inverted
.tchmi-linear-gauge-template-track::before {
left: 100%;
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer
.tchmi-linear-gauge-template.horizontal-inverted
.tchmi-linear-gauge-template-track::after {
top: calc(-0.5 * var(--bulb-radius));
left: calc(100% + 0.5 * var(--bulb-radius));
}

View File

@@ -0,0 +1,54 @@
// Compatibility file for non-module typescript compiles without adjustments.
// Use the following line for modern code (needs adjustments to tsconfig.json#configOptions/paths)
// import { TcHmiControl } from "Beckhoff.TwinCAT.HMI.Framework/index.esm.js";
// ***************************************************************************
declare class TcHmiThermometer extends TcHmi.Controls.Beckhoff.TcHmiLinearGauge {
#private;
/** Internal reference to the attribute 'data-tchmi-filler-color' */
protected __bulbColor: TcHmi.SolidColor | null | undefined;
protected __resizeObserver: ResizeObserver;
private __resizeObserverActive;
constructor(element: JQuery, pcElement: JQuery, attrs: TcHmi.Controls.ControlAttributeList);
__previnit(): void;
/**
* If raised, all attributes have been set to it's default or dom values.
* This function is only to be used by the System. Other function calls are not intended.
*/
__init(): void;
/**
* Is called by the system after the control instance gets part of the current DOM.
* This function is only to be used by the System. Other function calls are not intended.
*/
__attach(): void;
/**
* Is called by the system after the control instance is no longer part of the current DOM.
* This function is only to be used by the System. Other function calls are not intended.
*/
__detach(): void;
/**
* Destroy the current control instance.
* Will be called automatically if system destroys control!
*/
destroy(): void;
protected __onResized(): void;
/**
* Resizes the bulb.
* Will be called automatically by the resize observer.
*/
protected __resizeBulb(): void;
protected __processOrientation(): void;
/**
* Processes the current value of attribute progressForegroundColor.
*/
protected __processProgressForegroundColor(): void;
}
export { TcHmiThermometer as Control };
declare const _TcHmiThermometer: typeof TcHmiThermometer;
type tTcHmiThermometer = TcHmiThermometer;
declare global {
namespace TcHmi.Controls.Beckhoff {
const TcHmiThermometer: typeof _TcHmiThermometer;
type TcHmiThermometer = tTcHmiThermometer;
}
}

View File

@@ -0,0 +1,21 @@
<div
class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template tchmi-linear-gauge-template tchmi-box TcHmi_Controls_Beckhoff_TcHmiThermometer-template"
>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-labels tchmi-linear-gauge-template-labels"></div>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-ticks tchmi-linear-gauge-template-ticks"></div>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-track tchmi-linear-gauge-template-track">
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-filler tchmi-linear-gauge-template-filler"></div>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-knob tchmi-linear-gauge-template-knob"></div>
</div>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-range tchmi-linear-gauge-template-range"></div>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-description tchmi-linear-gauge-template-description">
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-unit tchmi-linear-gauge-template-unit">
<span class="content"></span>
</div>
<div class="TcHmi_Controls_Beckhoff_TcHmiLinearGauge-template-value tchmi-linear-gauge-template-value">
<span class="hidden max"></span>
<span class="hidden min"></span>
<span class="content"></span>
</div>
</div>
</div>

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,7 @@
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template-track::before {
background-color: var(--bulb-color, var(--tchmi-filler-background));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template-track::after {
background-color: var(--bulb-color, var(--tchmi-filler-background));
}

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,7 @@
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template-track::before {
background-color: var(--bulb-color, var(--tchmi-filler-background));
}
.TcHmi_Controls_Beckhoff_TcHmiThermometer .tchmi-linear-gauge-template-track::after {
background-color: var(--bulb-color, var(--tchmi-filler-background));
}