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,250 @@
{
"$schema": "../../TcHmiFramework/Schema/ControlDescription.Schema.json",
"apiVersion": 1,
"name": "TcHmiDateTimeDisplay",
"namespace": "TcHmi.Controls.Beckhoff",
"displayName": "Date Time Display",
"version": {
"full": "14.4.1.0",
"major": 14,
"minor": 4,
"build": 1,
"revision": 0
},
"visible": true,
"themeable": "Standard",
"base": "TcHmi.Controls.System.TcHmiControl",
"description": "A simple control for displaying the time by means of the users time zone.",
"defaultDesignerEvent": "",
"properties": {
"containerControl": false,
"geometry": {
"width": 128,
"height": 48
}
},
"icons": [
{
"name": "Icons/16x16.png",
"width": 16,
"height": 16
}
],
"template": "Template.html",
"dependencyFiles": [
{
"name": "../dist/TcHmiDateTimeDisplay/TcHmiDateTimeDisplay.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-time-display-layout",
"propertyName": "TimeDisplayLayout",
"propertySetterName": "setTimeDisplayLayout",
"propertyGetterName": "getTimeDisplayLayout",
"displayName": "Time Display Layout",
"visible": true,
"type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay.TimeDisplayLayout",
"themeable": "Standard",
"category": "Common",
"description": "Choose how you want to display the time and/or date.",
"readOnly": false,
"bindable": true,
"heritable": true,
"defaultValue": null,
"defaultValueInternal": "TimeDateMultiLine"
},
{
"name": "data-tchmi-text-color",
"propertyName": "TextColor",
"propertySetterName": "setTextColor",
"propertyGetterName": "getTextColor",
"displayName": "Text Color",
"visible": true,
"type": "tchmi:framework#/definitions/SolidColor",
"themeable": "Standard",
"category": "Colors",
"description": "General Text Color",
"readOnly": false,
"bindable": true,
"heritable": true,
"allowSymbolExpressionsInObject": true,
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "data-tchmi-text-font-size",
"propertyName": "TextFontSize",
"propertySetterName": "setTextFontSize",
"propertyGetterName": "getTextFontSize",
"displayName": "Text Font Size",
"visible": true,
"themeable": "Standard",
"displayPriority": 30,
"type": "tchmi:framework#/definitions/MeasurementValue",
"category": "Text",
"description": "The size of the font. Percent values are relative to the parent elements font size.",
"readOnly": false,
"bindable": true,
"heritable": true,
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "data-tchmi-text-font-size-unit",
"propertyName": "TextFontSizeUnit",
"propertySetterName": "setTextFontSizeUnit",
"propertyGetterName": "getTextFontSizeUnit",
"refTo": "TextFontSize",
"displayName": "Text Font Size Unit",
"visible": true,
"themeable": "Advanced",
"displayPriority": 30,
"type": "tchmi:framework#/definitions/MeasurementUnit",
"category": "Text",
"description": "Could be 'px' or for relative sizing '%'.",
"readOnly": false,
"bindable": true,
"heritable": true,
"defaultValue": null,
"defaultValueInternal": "px"
},
{
"name": "data-tchmi-text-horizontal-alignment",
"propertyName": "TextHorizontalAlignment",
"propertySetterName": "setTextHorizontalAlignment",
"propertyGetterName": "getTextHorizontalAlignment",
"displayName": "Text Horizontal Alignment",
"visible": true,
"themeable": "Standard",
"displayPriority": 20,
"type": "tchmi:framework#/definitions/HorizontalAlignment",
"category": "Text",
"description": "Defines the horizontal alignment of the text.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "data-tchmi-text-vertical-alignment",
"propertyName": "TextVerticalAlignment",
"propertySetterName": "setTextVerticalAlignment",
"propertyGetterName": "getTextVerticalAlignment",
"displayName": "Text Vertical Alignment",
"visible": true,
"themeable": "Standard",
"displayPriority": 20,
"type": "tchmi:framework#/definitions/VerticalAlignment",
"category": "Text",
"description": "Defines the vertical alignment of the text.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "data-tchmi-text-font-family",
"propertyName": "TextFontFamily",
"propertySetterName": "setTextFontFamily",
"propertyGetterName": "getTextFontFamily",
"displayName": "Text Font Family",
"visible": true,
"themeable": "Standard",
"displayPriority": 60,
"type": "tchmi:framework#/definitions/FontFamily",
"category": "Text",
"description": "Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "data-tchmi-text-font-style",
"propertyName": "TextFontStyle",
"propertySetterName": "setTextFontStyle",
"propertyGetterName": "getTextFontStyle",
"displayName": "Text Font Style",
"visible": true,
"themeable": "Standard",
"displayPriority": 60,
"type": "tchmi:framework#/definitions/FontStyle",
"category": "Text",
"description": "'Normal', 'Italic' (slanted with special glyphs), 'Oblique' (slanted normal glyphs) or 'Auto' for inherited.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": "Auto"
},
{
"name": "data-tchmi-text-font-weight",
"propertyName": "TextFontWeight",
"propertySetterName": "setTextFontWeight",
"propertyGetterName": "getTextFontWeight",
"displayName": "Text Font Weight",
"visible": true,
"themeable": "Standard",
"displayPriority": 60,
"type": "tchmi:framework#/definitions/FontWeight",
"category": "Text",
"description": "'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.",
"readOnly": false,
"bindable": true,
"defaultBindingMode": "OneWay",
"heritable": true,
"defaultValue": null,
"defaultValueInternal": "Auto"
}
],
"attributeCategories": [
{
"name": "Text",
"displayPriority": 550,
"defaultCollapsed": true,
"description": "Attributes defining the text of the control."
}
],
"functions": [],
"events": [],
"dataTypes": [
{
"schema": "Schema/Types.Schema.json"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

View File

@@ -0,0 +1,25 @@
{
"$schema": "http://json-schema.org/draft-04/schema",
"definitions": {
"TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay": {
"type": "object",
"frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl",
"frameworkControlType": "TcHmiDateTimeDisplay",
"frameworkControlNamespace": "TcHmi.Controls.Beckhoff"
},
"TcHmiDateTimeDisplay": {
"$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay"
},
"TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay.TimeDisplayLayout": {
"type": "string",
"enum": [
"Time",
"Date",
"TimeDateSingleLine",
"TimeDateMultiLine",
"DateTimeSingleLine",
"DateTimeMultiLine"
]
}
}
}

View File

@@ -0,0 +1,15 @@
/* General theme independent control css. */
.TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay {
overflow: hidden;
}
.TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay-Template {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
position: relative;
text-align: center;
}

View File

@@ -0,0 +1,208 @@
// 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 TcHmiDateTimeDisplay extends TcHmi.Controls.System.TcHmiControl {
#private;
/**
* Constructor of the control
* @param element Element from HTML (internal, do not use)
* @param pcElement precompiled Element (internal, do not use)
* @param attrs Attributes defined in HTML in a special format (internal, do not use)
*/
constructor(element: JQuery, pcElement: JQuery, attrs: TcHmi.Controls.ControlAttributeList);
/** HTML-Template-element */
protected __elementTemplateRoot: HTMLElement;
/** The time which will be displayed by this control (time, date or both) */
protected __timeDisplayLayout: string | null | undefined;
/** Date and time text color */
protected __textColor: TcHmi.SolidColor | null | undefined;
/** Time font size */
protected __textFontSize: number | undefined;
/** Text time font size unit of the breadcrumb buttons */
protected __textFontSizeUnit: TcHmi.FontSizeUnit | undefined;
/** Font family of the text */
protected __textFontFamily: TcHmi.FontFamily | null | undefined;
/** Font style of the text" */
protected __textFontStyle: TcHmi.FontStyle | undefined;
/** Font weight of the text */
protected __textFontWeight: TcHmi.FontWeight | undefined;
/** Horizontal alignment of the text */
protected __textHorizontalAlignment: TcHmi.HorizontalAlignment | null | undefined;
/** Vertical alignment of the text */
protected __textVerticalAlignment: TcHmi.VerticalAlignment | null | undefined;
/** Time and date update loop */
protected __readLoopID: number;
/**
* If raised, the control object exists in control cache and constructor of each inheritation level was called.
* This function is only to be used by the System. Other function calls are not intended.
*/
__previnit(): void;
/**
* Is called during control initialize phase after attribute setter have been called based on it's default or initial html 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;
/**
* Function to update time
*/
protected __updateTime(): void;
/******************************** time to display ***********************************************
* Sets the time to display and calls the associated process function (processTimeDisplayLayout).
* @param valueNew The new value for TimeDisplayLayout.
*/
setTimeDisplayLayout(valueNew: TimeDisplayLayout | null): void;
/**
* Returns the current value of TimeDisplayLayout.
* @returns The current value of TimeDisplayLayout.
*/
getTimeDisplayLayout(): string | null | undefined;
/**
* Processor function for 'data-tchmi-time-display-layout' attribute.
*/
protected __processTimeDisplayLayout(): void;
/********************************************************************** text color ******
* Setter function for 'data-tchmi-text-color' attribute.
*/
setTextColor(valueNew: TcHmi.SolidColor | null): void;
/**
* The watch callback for the textColor object resolver.
*/
protected __onResolverForTextColorWatchCallback(data: TcHmi.Symbol.ObjectResolver.IWatchResultObject<TcHmi.SolidColor>): void;
/**
* Getter function for 'data-tchmi-text-color' attribute.
*/
getTextColor(): TcHmi.SolidColor | null | undefined;
/**
* Processor function for 'data-tchmi-text-color' attribute.
*/
protected __processTextColor(): void;
/****************************************************** text font size ******************************
* Sets the font size and calls the associated process function (processTextFontSize).
* @param valueNew The new value for TextFontSize.
*/
setTextFontSize(valueNew: number | null): void;
/**
* Returns the current value of TextFontSize.
* @returns The current value of TextFontSize.
*/
getTextFontSize(): number | undefined;
/**
* Processes the current textFontSize attribute value.
*/
protected __processTextFontSize(): void;
/******************************** Text Font Size Unit ***********************************************
* Sets the font size unit and calls the associated process function (processTextFontSizeUnit).
* @param valueNew The new value for textFontSizeUnit.
*/
setTextFontSizeUnit(valueNew: TcHmi.FontSizeUnit | null): void;
/**
* Returns the current value of TextFontSizeUnit.
* @returns The current value of TextFontSizeUnit.
*/
getTextFontSizeUnit(): TcHmi.FontSizeUnit | undefined;
/**
* Processes the current TextFontSizeUnit attribute value.
*/
protected __processTextFontSizeUnit(): void;
/******************************************** text horizontal alignment ********************************************
* Sets the textHorizontalAlignment value and calls the associated process function (processTextHorizontalAlignment).
* @param valueNew The new value for textHorizontalAlignment.
*/
setTextHorizontalAlignment(valueNew: TcHmi.HorizontalAlignment | null): void;
/**
* Returns the current value of horizontalTextAligment.
* @returns The current value of horizontalTextAligment.
*/
getTextHorizontalAlignment(): TcHmi.HorizontalAlignment | null | undefined;
/**
* Processes the current textHorizontalAlignment attribute value.
*/
protected __processTextHorizontalAlignment(): void;
/**************************************************** text vertical alignment **************************************
* Sets the textVerticalAlignment value and calls the associated process function (processTextVerticalAlignment).
* @param valueNew The new value for textVerticalAlignment.
*/
setTextVerticalAlignment(valueNew: TcHmi.VerticalAlignment | null): void;
/**
* Returns the current value of horizontalTextAligment.
* @returns The current value of horizontalTextAligment.
*/
getTextVerticalAlignment(): TcHmi.VerticalAlignment | null | undefined;
/**
* Processes the current textVerticalAlignment attribute value.
*/
protected __processTextVerticalAlignment(): void;
/******************************************* text font family ***************************************
* Sets the font family and calls the associated process function (processTextFontFamily).
* @param valueNew The new value for textFontFamily.
*/
setTextFontFamily(valueNew: TcHmi.FontFamily | null): void;
/**
* Returns the current value of textFontFamily.
* @returns The current value of textFontFamily.
*/
getTextFontFamily(): string | null | undefined;
/**
* Processes the current textFontFamily attribute value.
*/
protected __processTextFontFamily(): void;
/********************************************************** text font style ******************
* Sets the font style and calls the associated process function (processTextFontStyle).
* @param valueNew The new value for textFontStyle.
*/
setTextFontStyle(valueNew: TcHmi.FontStyle | null): void;
/**
* Returns the current value of textFontStyle.
* @returns The current value of textFontStyle.
*/
getTextFontStyle(): TcHmi.FontStyle | undefined;
/**
* Processes the current textFontStyle attribute value.
*/
protected __processTextFontStyle(): void;
/*********************************************** text font weight *******************************************
* Sets the font weight and calls the associated process function (processTextFontWeight).
* @param valueNew The new value for textFontWeight.
*/
setTextFontWeight(valueNew: TcHmi.FontWeight | null): void;
/**
* Returns the current value of textFontWeight.
* @returns The current value of textFontWeight.
*/
getTextFontWeight(): TcHmi.FontWeight | undefined;
/**
* Processes the current textFontWeight attribute value.
*/
protected __processTextFontWeight(): void;
}
export type TimeDisplayLayout = 'Time' | 'Date' | 'TimeDateSingleLine' | 'TimeDateMultiLine' | 'DateTimeSingleLine' | 'DateTimeMultiLine';
export { TcHmiDateTimeDisplay as Control };
declare const _TcHmiDateTimeDisplay: typeof TcHmiDateTimeDisplay;
type tTcHmiDateTimeDisplay = TcHmiDateTimeDisplay;
type tTimeDisplayLayout = TimeDisplayLayout;
declare global {
namespace TcHmi.Controls.Beckhoff {
const TcHmiDateTimeDisplay: typeof _TcHmiDateTimeDisplay;
type TcHmiDateTimeDisplay = tTcHmiDateTimeDisplay;
namespace TcHmiDateTimeDisplay {
type TimeDisplayLayout = tTimeDisplayLayout;
}
}
}

View File

@@ -0,0 +1 @@
<div class="TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay-Template tchmi-box"></div>

View File

@@ -0,0 +1,11 @@
/* Theme depended control css. */
/*Base-Dark Theme*/
.TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay {
--tchmi-text-color: var(--tchmi-foreground-color-1);
--tchmi-font-size: 16px;
}
.TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay-Template {
color: var(--tchmi-text-color);
font-size: var(--tchmi-font-size);
}

View File

@@ -0,0 +1,11 @@
/* Theme depended control css. */
/*Base Theme*/
.TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay {
--tchmi-text-color: var(--tchmi-foreground-color-4);
--tchmi-font-size: 16px;
}
.TcHmi_Controls_Beckhoff_TcHmiDateTimeDisplay-Template {
color: var(--tchmi-text-color);
font-size: var(--tchmi-font-size);
}