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,153 @@
{
"$schema": "../../TcHmiFramework/Schema/ControlDescription.Schema.json",
"apiVersion": 1,
"name": "TcHmiAdsState",
"namespace": "TcHmi.Controls.Beckhoff",
"displayName": "ADS State",
"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 control which displays the state of a TwinCAT runtime.",
"defaultDesignerEvent": "",
"properties": {
"containerControl": false,
"geometry": {
"width": 64,
"height": 64
}
},
"icons": [
{
"name": "Icons/16x16.png",
"width": 16,
"height": 16
}
],
"template": "Template.html",
"dependencyFiles": [
{
"name": "../dist/TcHmiAdsState/TcHmiAdsState.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-ads-runtime",
"propertyName": "AdsRuntime",
"propertySetterName": "setAdsRuntime",
"propertyGetterName": "getAdsRuntime",
"displayName": "ADS Runtime",
"visible": true,
"themeable": "Advanced",
"displayPriority": 10,
"type": "tchmi:general#/definitions/String",
"category": "Common",
"description": "The ADS extension runtime to be watched.",
"defaultValue": "PLC1",
"defaultValueInternal": null,
"readOnly": false,
"bindable": true,
"heritable": true
},
{
"name": "data-tchmi-server-interval",
"propertyName": "ServerInterval",
"propertySetterName": "setServerInterval",
"propertyGetterName": "getServerInterval",
"displayName": "Server Interval",
"visible": true,
"themeable": "Advanced",
"displayPriority": 100,
"type": "tchmi:general#/definitions/Number",
"category": "Common",
"description": "Sets the interval for the ADS state subscription in milliseconds. This might be expensive performance wise, so do not set to a very low value.",
"defaultValue": 500,
"defaultValueInternal": null,
"readOnly": false,
"bindable": true,
"heritable": true
},
{
"name": "data-tchmi-server-domain",
"propertyName": "ServerDomain",
"propertySetterName": "setServerDomain",
"propertyGetterName": "getServerDomain",
"displayName": "Server Domain",
"visible": true,
"themeable": "Advanced",
"displayPriority": 100,
"type": "tchmi:general#/definitions/String",
"category": "Common",
"description": "The domain of the ADS extension in the server. Defaults to 'ADS'.",
"readOnly": false,
"bindable": true,
"heritable": true,
"defaultValue": "",
"defaultValueInternal": "ADS"
},
{
"name": "data-tchmi-state-Images",
"propertyName": "StateImages",
"propertySetterName": "setStateImages",
"propertyGetterName": "getStateImages",
"displayName": "State Images",
"visible": true,
"themeable": "Advanced",
"displayPriority": 20,
"type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiAdsState.StateImages",
"category": "Common",
"description": "A structure defining an image for each state the control can have and the fallback image.",
"defaultValue": null,
"defaultValueInternal": null,
"readOnly": false,
"allowSymbolExpressionsInObject": true,
"bindable": true,
"heritable": true
}
],
"attributeCategories": [],
"functions": [],
"events": [],
"dataTypes": [
{
"schema": "Schema/Types.Schema.json"
}
],
"languages": {
"en": "Lang/Language.en.json",
"de": "Lang/Language.de.json"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

View File

@@ -0,0 +1,22 @@
{
"$schema": "../../../TwinCAT-HMI-Common/JsonSchemas/Language.Schema.json",
"locale": "de",
"localizedText": {
"State": "{0} Status ({1}): {2}",
"InvalidRuntime": "Es ist keine Laufzeit mit dem Namen '{0}' konfiguriert.",
"InvalidRouter": "Der TwinCAT-Router befindet sich in einem ungültigen Zustand. Es konnte kein Port geöffnet werden.",
"InvalidSymbol": "Das angeforderte Symbol ist nicht verfügbar.",
"InvalidParameter": "Ein Parameter der angeforderten Funktion ist ungültig.",
"InvalidTwinCATVersion": "Die TwinCAT-Version ist ungültig.",
"ConfigDirectory": "Das TwinCAT-Konfigurationsverzeichnis wurde nicht gefunden.",
"ParseBaseTypes": "Fehler beim Parsen der ADS-Basistypen.",
"ParseAdsDate": "Fehler beim Parsen der ADS-Daten.",
"InvalidData": "Ungültige Daten, die auf den Server oder einen ADS-Datentyp geschrieben wurden, können nicht analysiert werden.",
"MissingParameter": "In der angeforderten Funktion fehlt ein Parameter.",
"RuntimeDisabled": "Die angeforderte Laufzeit '{0}' ist in der HMI-Konfiguration deaktiviert.",
"MissingCommands": "Fehlende Befehle in der Rückmeldung des Servers mit der Id: '{0}'.",
"MissingResponse": "Fehlende Rückmeldung des Servers.",
"SubscriptionFailed": "Das Abonnement auf das Symbol '{0}.AdsSyncReadStateReq' ist fehlgeschlagen.",
"ErrorPlaceholder": "Fehler: {0}"
}
}

View File

@@ -0,0 +1,22 @@
{
"$schema": "../../../TwinCAT-HMI-Common/JsonSchemas/Language.Schema.json",
"locale": "en",
"localizedText": {
"State": "{0} State ({1}): {2}",
"InvalidRuntime": "No runtime with name '{0}' configured.",
"InvalidRouter": "The TwinCAT Router is in invalid state. No port could be opened.",
"InvalidSymbol": "The requested symbol is not available.",
"InvalidParameter": "A parameter of the requested function is invalid.",
"InvalidTwinCATVersion": "TwinCAT version invalid.",
"ConfigDirectory": "TwinCAT configuration directory not found.",
"ParseBaseTypes": "Error while parsing ADS base types.",
"ParseAdsDate": "Error while parsing ADS data.",
"InvalidData": "Invalid data written to server or an ADS datatype can not be parsed.",
"MissingParameter": "A parameter is missing in the requested function.",
"RuntimeDisabled": "The requested runtime '{0}' is disabled in the HMI configuration.",
"MissingCommands": "Missing commands in response from server with id: '{0}'.",
"MissingResponse": "Missing response from server.",
"SubscriptionFailed": "Subscription to the symbol '{0}.AdsSyncReadStateReq' failed.",
"ErrorPlaceholder": "Error: {0}"
}
}

View File

@@ -0,0 +1,276 @@
{
"$schema": "http://json-schema.org/draft-04/schema",
"definitions": {
"TcHmi.Controls.Beckhoff.TcHmiAdsState": {
"type": "object",
"frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl",
"frameworkControlType": "TcHmiAdsState",
"frameworkControlNamespace": "TcHmi.Controls.Beckhoff"
},
"TcHmiAdsState": {
"$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiAdsState"
},
"TcHmi.Controls.Beckhoff.TcHmiAdsState.StateImages": {
"type": "object",
"title": "StateImages",
"description": "A structure defining an image for each state the control can have and the fallback image.",
"propertiesMeta": [
{
"name": "Fallback",
"displayName": "Fallback",
"category": "General",
"displayPriority": 1,
"description": "The Fallback Image if a state is not defined.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Invalid",
"displayName": "Invalid",
"category": "General",
"displayPriority": 2,
"description": "The Image for the State 'Invalid'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Idle",
"displayName": "Idle",
"category": "General",
"displayPriority": 3,
"description": "The Image for the State 'Idle'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Reset",
"displayName": "Reset",
"category": "General",
"displayPriority": 4,
"description": "The Image for the State 'Reset'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Init",
"displayName": "Init",
"category": "General",
"displayPriority": 5,
"description": "The Image for the State 'Init'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Start",
"displayName": "Start",
"category": "General",
"displayPriority": 6,
"description": "The Image for the State 'Start'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Run",
"displayName": "Run",
"category": "General",
"displayPriority": 7,
"description": "The Image for the State 'Run'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Stop",
"displayName": "Stop",
"category": "General",
"displayPriority": 8,
"description": "The Image for the State 'Stop'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "SaveCfg",
"displayName": "Save Cfg",
"category": "General",
"displayPriority": 9,
"description": "The Image for the State 'SaveCfg'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "LoadCfg",
"displayName": "Load Cfg",
"category": "General",
"displayPriority": 10,
"description": "The Image for the State 'LoadCfg'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "PowerFailure",
"displayName": "Power Failure",
"category": "General",
"displayPriority": 11,
"description": "The Image for the State 'PowerFailure'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "PowerGood",
"displayName": "Power Good",
"category": "General",
"displayPriority": 12,
"description": "The Image for the State 'PowerGood'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Error",
"displayName": "Error",
"category": "General",
"displayPriority": 13,
"description": "The Image for the State 'Error'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Shutdown",
"displayName": "Shutdown",
"category": "General",
"displayPriority": 14,
"description": "The Image for the State 'Shutdown'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Suspend",
"displayName": "Suspend",
"category": "General",
"displayPriority": 15,
"description": "The Image for the State 'Suspend'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Resume",
"displayName": "Resume",
"category": "General",
"displayPriority": 16,
"description": "The Image for the State 'Resume'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Config",
"displayName": "Config",
"category": "General",
"displayPriority": 17,
"description": "The Image for the State 'Config'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Reconfig",
"displayName": "Reconfig",
"category": "General",
"displayPriority": 18,
"description": "The Image for the State 'Reconfig'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Stopping",
"displayName": "Stopping",
"category": "General",
"displayPriority": 19,
"description": "The Image for the State 'Stopping'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Incompatible",
"displayName": "Incompatible",
"category": "General",
"displayPriority": 20,
"description": "The Image for the State 'Incompatible'.",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "Exception",
"displayName": "Exception",
"category": "General",
"displayPriority": 21,
"description": "The Image for the State 'Exception'.",
"defaultValue": null,
"defaultValueInternal": null
}
],
"properties": {
"Fallback": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Invalid": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Idle": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Reset": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Init": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Start": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Run": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Stop": {
"$ref": "tchmi:framework#/definitions/Path"
},
"SaveCfg": {
"$ref": "tchmi:framework#/definitions/Path"
},
"LoadCfg": {
"$ref": "tchmi:framework#/definitions/Path"
},
"PowerFailure": {
"$ref": "tchmi:framework#/definitions/Path"
},
"PowerGood": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Error": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Shutdown": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Suspend": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Resume": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Config": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Reconfig": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Stopping": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Incompatible": {
"$ref": "tchmi:framework#/definitions/Path"
},
"Exception": {
"$ref": "tchmi:framework#/definitions/Path"
}
},
"additionalProperties": false
}
}
}

View File

@@ -0,0 +1,13 @@
/* General theme independent control css. */
.TcHmi_Controls_Beckhoff_TcHmiAdsState {
display: block;
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template {
height: 100%;
width: 100%;
background-size: contain;
background-position: 50% 50%;
background-repeat: no-repeat;
border-radius: inherit;
}

View File

@@ -0,0 +1,194 @@
// 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";
// ***************************************************************************
export declare enum AdsState {
Invalid = 0,
Idle = 1,
Reset = 2,
Init = 3,
Start = 4,
Run = 5,
Stop = 6,
SaveCfg = 7,
LoadCfg = 8,
PowerFailure = 9,
PowerGood = 10,
Error = 11,
Shutdown = 12,
Suspend = 13,
Resume = 14,
Config = 15,
Reconfig = 16,
Stopping = 17,
Incompatible = 18,
Exception = 19
}
declare class TcHmiAdsState 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 root element */
protected __elementTemplateRoot: HTMLElement;
/** Server Domain */
protected __serverDomain: string | null | undefined;
/** Server Interval */
protected __serverInterval: number | null | undefined;
/** ADS Runtime*/
protected __adsRuntime: string | null | undefined;
/** state list */
protected __stateImages: IStateImages | null | undefined;
/** The id of the subscription */
protected __subscriptionId: number | null;
/** Localization */
protected __localizedElements: Map<HTMLElement, {
key: string;
parameters?: any[];
}>;
protected __localizationReader: TcHmi.Locale.LocalizationReader | undefined;
/**
* 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;
/**
* Updates the subscription getting metadata for the Ads state.
*/
protected __updateSubscription(): void;
/**
* Handles the response of the subscription.
*/
protected __serverResponseHandler(data: TcHmi.Server.IResultObject<string, {
AdsState: AdsState;
DeviceState: number;
}>): void;
/**
* Add an element to be localized.
* @param element The element.
* @param key The localization key.
* @param parameters Optional parameters to pass to tchmi_format_string.
*/
__addLocalizedElement(element: HTMLElement, key: string, ...parameters: any[]): void;
/**
* Remove a localized element.
* @param element The element to remove.
*/
__removeLocalizedElement(element: HTMLElement): void;
/**
* Sets the AdsRuntime value and calls the associated process function (processAdsRuntime).
* @param valueNew The new value for the AdsRuntime attribute.
*/
setAdsRuntime(valueNew: string | null): void;
/**
* Returns the current AdsRuntime value.
*/
getAdsRuntime(): string | null | undefined;
__processAdsRuntime(): void;
/**
* Sets the ServerInterval value and calls the associated process function (processServerInterval).
* @param valueNew The new value for the ServerInterval attribute.
*/
setServerInterval(valueNew: number | null): void;
/**
* Returns the current ServerInterval value.
*/
getServerInterval(): number | null | undefined;
__processServerInterval(): void;
/**
* Sets the ServerDomain value and calls the associated process function (processServerDomain).
* @param valueNew The new value for the ServerDomain attribute.
*/
setServerDomain(valueNew: string | null): void;
/**
* Returns the current ServerDomain value.
*/
getServerDomain(): string | null | undefined;
__processServerDomain(): void;
/**
* Sets the StateImages value and calls the associated process function (processStateImages).
* @param valueNew The new value for the StateImages attribute.
*
*/
setStateImages(valueNew: IStateImages | null): void;
/**
* The watch callback for the srcData object resolver.
*/
protected __onResolverForStateImagesWatchCallback(data: TcHmi.Symbol.ObjectResolver.IWatchResultObject<IStateImages | null>): void;
/**
* Returns the current StateImages value.
*/
getStateImages(): IStateImages | null | undefined;
/**
* Processes the current stateImages attribute value.
*/
__processStateImages(): void;
/**
* Processes the current tooltip attribute value.
*/
protected __processTooltip(): void;
static AdsState: typeof AdsState;
}
export interface IStateImages {
Fallback: string;
Invalid: string;
Idle: string;
Reset: string;
Init: string;
Start: string;
Run: string;
Stop: string;
SaveCfg: string;
LoadCfg: string;
PowerFailure: string;
PowerGood: string;
Error: string;
Shutdown: string;
Suspend: string;
Resume: string;
Config: string;
Reconfig: string;
Stopping: string;
Incompatible: string;
Exception: string;
}
export { TcHmiAdsState as Control };
declare const _TcHmiAdsState: typeof TcHmiAdsState;
type tTcHmiAdsState = TcHmiAdsState;
type tAdsState = AdsState;
type tIStateImages = IStateImages;
declare global {
namespace TcHmi.Controls.Beckhoff {
const TcHmiAdsState: typeof _TcHmiAdsState;
type TcHmiAdsState = tTcHmiAdsState;
namespace TcHmiAdsState {
type AdsState = tAdsState;
type IStateImages = tIStateImages;
}
}
}

View File

@@ -0,0 +1 @@
<div class="TcHmi_Controls_Beckhoff_TcHmiAdsState-template tchmi-box" data-tchmi-runtime-state></div>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#2775be" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#ffa500" />
</g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#009940" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#e30613" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#A3B0BB" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,31 @@
/* Theme depended control css. */
/* Base-Dark Theme*/
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template {
height: 100%;
width: 100%;
background-size: contain;
background-position: 50% 50%;
background-repeat: no-repeat;
box-shadow: var(--tchmi-card-shadow);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state] {
background-image: url(Images/twincat_unknown.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Run'] {
background-image: url(Images/twincat_run.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Stop'],
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Error'] {
background-image: url(Images/twincat_stop.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Config'] {
background-image: url(Images/twincat_config.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Exception'] {
background-image: url(Images/twincat_exception.svg);
}

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#4794da" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#ffa500" />
</g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#009940" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#e30613" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="pfade" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="80px" height="80px" viewBox="0 0 80 80" enable-background="new 0 0 80 80" xml:space="preserve">
<g>
<rect height="100%" width="100%" fill="#d7d7d9" />
</g>
<g>
<g>
<path fill="#FFFFFF" d="M45.426,42.866c0.622,0,1.22-0.145,1.84-0.394l-0.918,3.079c-0.489,0.101-1.025,0.172-1.536,0.172
c-3.03,0-5.458-1.874-5.458-5.699c0-3.595,2.534-5.393,5.458-5.393c0.966,0,1.542,0.138,2.481,0.338v2.827
c-0.575-0.215-1.162-0.4-1.75-0.4c-1.488,0-2.611,0.938-2.611,2.689C42.932,41.929,43.977,42.866,45.426,42.866"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M47.361,45.54h3.486l0.561-2.32h2.951l0.601,2.32h3.669
l-3.252-10.724H50.56L47.361,45.54z M52.897,37.12h0.026l0.992,3.519h-2.024L52.897,37.12z"/>
<path fill="#FFFFFF" d="M57.547,34.792h9.002c-0.483,0.371-0.794,0.953-0.794,1.609c0,0.626,0.284,1.195,0.73,1.567h-2.355v7.56
h-3.5v-7.56h-3.083V34.792z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M67.639,35.721h0.296c0.17,0,0.361,0.035,0.361,0.245
c0,0.24-0.17,0.266-0.366,0.266h-0.292V35.721z M67.307,37.252h0.332v-0.768h0.2l0.463,0.768h0.339l-0.479-0.781
c0.292-0.026,0.467-0.175,0.467-0.48c0-0.375-0.232-0.523-0.66-0.523h-0.662V37.252z M67.913,37.636
c-0.658,0-1.19-0.532-1.19-1.27c0-0.737,0.532-1.269,1.19-1.269c0.659,0,1.191,0.532,1.191,1.269
C69.104,37.104,68.572,37.636,67.913,37.636 M67.913,37.941c0.868,0,1.575-0.707,1.575-1.575s-0.707-1.574-1.575-1.574
c-0.868,0-1.575,0.706-1.575,1.574S67.045,37.941,67.913,37.941"/>
</g>
<g>
<path fill="#FFFFFF" d="M12.876,45.518v-9.472h-2.364v-1.254h6.24v1.254h-2.38v9.472H12.876z"/>
<path fill="#FFFFFF" d="M18.569,45.518l-2.059-8.041h1.479l1.432,6.674l1.479-6.674h1.608l1.479,6.674l1.447-6.674h1.367
l-2.059,8.041h-1.608l-1.463-6.577l-1.495,6.577H18.569z"/>
<path fill="#FFFFFF" d="M28.202,35.821v-1.544h1.415v1.544H28.202z M28.218,45.518v-8.041h1.383v8.041H28.218z"/>
<path fill="#FFFFFF" d="M31.932,45.518v-5.821c0-0.756-0.048-1.463-0.064-2.219h1.287l0.032,1.174
c0.37-0.756,1.11-1.334,2.09-1.334c1.641,0,2.219,1.27,2.219,2.733v5.468h-1.383v-5.419c0-0.853-0.321-1.64-1.271-1.64
c-1.045,0-1.527,1.11-1.527,1.978v5.082H31.932z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,30 @@
/* Theme depended control css. */
/* Base Theme*/
.TcHmi_Controls_Beckhoff_TcHmiAdsState {
height: 100%;
width: 100%;
background-size: contain;
background-position: 50% 50%;
background-repeat: no-repeat;
box-shadow: var(--tchmi-card-shadow);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state] {
background-image: url(Images/twincat_unknown.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Run'] {
background-image: url(Images/twincat_run.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Stop'],
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Error'] {
background-image: url(Images/twincat_stop.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Config'] {
background-image: url(Images/twincat_config.svg);
}
.TcHmi_Controls_Beckhoff_TcHmiAdsState-template[data-tchmi-runtime-state='Exception'] {
background-image: url(Images/twincat_exception.svg);
}