Merge branch 'develop' into integratedFileEditor

# Conflicts:
#	Client/Browser_Tools/BrowserJSObject.cs
#	Step/Controllers/WebApi/NcFileController.cs
This commit is contained in:
Lucio Maranta
2019-07-09 11:07:32 +02:00
166 changed files with 5447 additions and 2182 deletions
+4 -3
View File
@@ -35,7 +35,8 @@ namespace Active_Client.Browser_Tools
// The first letter of All PUBLIC Variables and Methods must be Lower-Case (CEF Settings)
private MainForm mainForm;
private static readonly string[] _validExtensions = { "", ".txt", ".cnc", ".cn", ".cno", ".ini", ".mpf", ".spf", ".tap", ".anc", /*".job", ".zip"*/ };
private static readonly string[] _validExtensions = { "", ".txt", ".cnc", ".cn", ".cno", ".ini", ".mpf", ".spf", ".tap", ".anc", ".iso", /*".job", ".zip"*/ };
private static readonly string[] _validImages = { ".jpg", ".jpeg", ".png" };
private static readonly string editorPath = @"C:\Windows\System32\notepad.exe";
private static readonly int editorX = 56;
@@ -280,7 +281,7 @@ namespace Active_Client.Browser_Tools
{
if (e.Arguments.Count() == 0)
return;
Thread t = new Thread(new ParameterizedThreadStart(OpenNew));
t.Start(e.Arguments[0].StringValue);
}
@@ -300,7 +301,7 @@ namespace Active_Client.Browser_Tools
{
Software sft = Config.ExtSoftwaresConfig.FirstOrDefault(X => X.id == (string)id);
if (sft != null)
if (sft != null && System.IO.File.Exists(sft.path))
{
Process[] p = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(sft.path)).OrderByDescending(X => X.StartTime).ToArray();
+3
View File
@@ -44,6 +44,7 @@ namespace Active_Client.View
this.Browser.Size = new System.Drawing.Size(1920, 1080);
this.Browser.TabIndex = 1;
this.Browser.Text = "chromiumWebBrowser2";
this.Browser.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Browser_KeyDown);
//
// MainForm
//
@@ -55,6 +56,7 @@ namespace Active_Client.View
this.DoubleBuffered = true;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(1920, 1080);
this.MinimizeBox = false;
@@ -65,6 +67,7 @@ namespace Active_Client.View
this.Text = "CMS-STEP Client";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
this.Load += new System.EventHandler(this.MainForm_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown);
this.Resize += new System.EventHandler(this.MainForm_Resize);
this.ResumeLayout(false);
+16 -4
View File
@@ -121,11 +121,11 @@ namespace Active_Client.View
if (WindowState == FormWindowState.Minimized)
{
NcWindow.ShowTaskBar();
NcWindow.MinimizeNcWindow();
NcWindow.HideNcWindow();
if (Config.VendorHmiConfig.Type == 3)
NcWindow.HideNcWindow();
NcWindow.MinimizeProdWindow();
NcWindow.HideProdWindow();
}
else
{
@@ -185,7 +185,6 @@ namespace Active_Client.View
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
}
#endregion
@@ -769,6 +768,19 @@ namespace Active_Client.View
}
}
private void MainForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.F4)
{
e.Handled = true;
}
}
private void Browser_KeyDown(object sender, KeyEventArgs e)
{
}
//Windows Keys Handler
public void keyPressedHandler(bool altPressed, bool ctrlPressed, bool shiftPressed, int key)
+28 -24
View File
@@ -98,7 +98,9 @@ namespace Active_Client.View
private static uint KeybPID;
private static uint ActualWindowPID;
private static int ActiveNCWindowStyle;
private static int ActiveNCWindowBorder;
private static int ActiveNCWindowBorder;
private static int ActiveWindowNCWindowStyle;
private static int ActiveWindowNCWindowBorder;
public static MainForm mainFrm;
private static string prodEXEname;
@@ -206,7 +208,7 @@ namespace Active_Client.View
//Start the Process
ncprocess.Start();
ncprocess.WaitForInputIdle();
ncprocess.WaitForInputIdle(1000);
//Wait until the process is started
TriedTimes = 1;
@@ -283,7 +285,7 @@ namespace Active_Client.View
{
//Set the first founded process
prodprocess = processes[0];
prodprocess.WaitForInputIdle();
prodprocess.WaitForInputIdle(1000);
//Wait until the process is started
TriedTimes = 1;
@@ -983,18 +985,20 @@ namespace Active_Client.View
if (ActualWindowPID == NcProcessPID && NcProcessPID != 0 && hWinEventHook != ncprocess.MainWindowHandle)
{
//Read the style of the window
ActiveNCWindowStyle = GetWindowLong(hwnd, GWL_STYLE);
ActiveWindowNCWindowStyle = GetWindowLong(hwnd, GWL_STYLE);
//Find if it has the border
ActiveNCWindowBorder = (ActiveNCWindowStyle & WS_BORDER);
ActiveWindowNCWindowBorder = (ActiveWindowNCWindowStyle & WS_BORDER);
//if it has the border and a title execute focus
if (ActiveNCWindowStyle != 0 && ActiveNCWindowBorder == WS_BORDER && ReadWindowTitle(hwnd) != "")
if (ActiveWindowNCWindowStyle != 0 && ActiveWindowNCWindowBorder == WS_BORDER && ReadWindowTitle(hwnd) != "")
{
if (eventType == EVENT_OBJECT_CREATE && state == NcState.SHOW)
if (eventType == EVENT_OBJECT_CREATE)
{
SetForegroundWindow(ncprocess.MainWindowHandle);
else if(eventType == EVENT_OBJECT_DESTROY)
SetForegroundWindow(MainViewHandle);
}
else if (eventType == EVENT_OBJECT_DESTROY)
SetWindowPos(MainViewHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
}
}
@@ -1014,11 +1018,6 @@ namespace Active_Client.View
//Delete the TOPMOST Style of the Window
if (NcProcessPID != 0 && ActualPID == NcProcessPID)
{
if (state == NcState.SHOW)
{
SetWindowPos(hwnd, ncprocess.MainWindowHandle, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
}
//Read the style of the window
ActiveNCWindowStyle = GetWindowLong(hwnd, GWL_STYLE);
@@ -1029,7 +1028,7 @@ namespace Active_Client.View
//if it has the border and a title execute focus
if (ActiveNCWindowStyle != 0 && ActiveNCWindowBorder == WS_BORDER && ReadWindowTitle(hwnd) != "" && hwnd != ncprocess.MainWindowHandle)
{
SetWindowPos(ncprocess.MainWindowHandle, MainViewHandle, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
SetWindowPos(ncprocess.MainWindowHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
}
}
@@ -1039,10 +1038,6 @@ namespace Active_Client.View
{
if (!IsIconic(MainViewHandle))
{
//Hide the TaskBar
if (Environment.OSVersion.Version.Major < 10)
HideTaskBar();
//Show Virtual keyboard
if (Config.ClientConfig.ShowVirtualKeyboard && Environment.OSVersion.Version.Major < 10)
reOpenVirtualKeyboard();
@@ -1055,9 +1050,6 @@ namespace Active_Client.View
if (Environment.OSVersion.Version.Major < 10)
HideTaskBar();
if (LastHookedPID != MainProcessPID && LastHookedPID != NcProcessPID && LastHookedPID != ProdProcessPID)
SetForegroundWindow(MainViewHandle);
}
//If the PID is OTHER Process
else
@@ -1066,6 +1058,8 @@ namespace Active_Client.View
if (Environment.OSVersion.Version.Major < 10)
ShowTaskBar();
//SetForegroundWindow(hwnd);
//Hide Virtual keyboard
if (Config.ClientConfig.ShowVirtualKeyboard && Environment.OSVersion.Version.Major < 10 && KeyboardPID != 0 && ActualPID != KeyboardPID)
closeVirtualKeyboard();
@@ -1406,11 +1400,21 @@ namespace Active_Client.View
//NC Following Method
public static void FollowNcBehaviour()
{
{
uint process = 0;
try
{
while (true)
{
{
GetWindowThreadProcessId(GetForegroundWindow(), out process);
if (state != NcState.SHOW && state != NcState.SHOWPROD && (process == NcProcessPID || process == ProdProcessPID))
mainFrm.HideAUXWindow();
else if (state == NcState.SHOWPROD && process == NcProcessPID && prodwindowstarted)
mainFrm.ShowProdWindow();
else if (state == NcState.SHOW && process == ProdProcessPID && windowstarted)
mainFrm.ShowNCWindow();
if (Process.GetProcessesByName(processname).Length == 0)
{
//Un-parent the window
Binary file not shown.
+1 -1
View File
@@ -31,7 +31,7 @@
<ncNeeded>false</ncNeeded>
</utilities>
<scada>
<enabled>false</enabled>
<enabled>true</enabled>
<allowExternalBrowser>true</allowExternalBrowser>
<ncNeeded>true</ncNeeded>
</scada>
+4
View File
@@ -0,0 +1,4 @@
%
<ACTIVE_LOADER_{0}>
M30;
%
+169 -162
View File
@@ -1,173 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<maintenances>
<maintenance>
<id>1</id>
<localizedName>
<lang langKey="en">5-Axis operating-unit management</lang>
<lang langKey="it">Gestione gruppo operatore 5 assi</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Replace air/liquid seals of rotary axis joint</lang>
<lang langKey="it">Sostituire tenute aria/liquido giunto assi rotanti</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>0</counterId>
</maintenance>
<maintenancesConfig>
<contact>
<name>CMS</name>
<email>cms@cms.it</email>
<phoneNumber>034564111</phoneNumber>
</contact>
<maintenances>
<maintenance>
<id>1</id>
<localizedName>
<lang langKey="en">5-Axis operating-unit management</lang>
<lang langKey="it">Gestione gruppo operatore 5 assi</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Replace air/liquid seals of rotary axis joint</lang>
<lang langKey="it">Sostituire tenute aria/liquido giunto assi rotanti</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>0</counterId>
</maintenance>
<maintenance>
<id>2</id>
<localizedName>
<lang langKey="en">Transmission member check</lang>
<lang langKey="it">Gestione Organi di trasmissione</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Transmission members check</lang>
<lang langKey="it">Necessary control of all transmission system</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>2</id>
<localizedName>
<lang langKey="en">Transmission member check</lang>
<lang langKey="it">Gestione Organi di trasmissione</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Transmission members check</lang>
<lang langKey="it">Necessary control of all transmission system</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>3</id>
<localizedName>
<lang langKey="en">Mechanical/electrical safety systems</lang>
<lang langKey="it">Sistemi di sicurezza meccanici/elettrici</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Necessary control of mechanical/electrical safety systems</lang>
<lang langKey="it">Necessario controllo di tutti i sistemi di sicurezza meccanici/elettrici presenti in macchina</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>3</id>
<localizedName>
<lang langKey="en">Mechanical/electrical safety systems</lang>
<lang langKey="it">Sistemi di sicurezza meccanici/elettrici</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Necessary control of mechanical/electrical safety systems</lang>
<lang langKey="it">Necessario controllo di tutti i sistemi di sicurezza meccanici/elettrici presenti in macchina</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>4</id>
<localizedName>
<lang langKey="en">Check of axis geometry</lang>
<lang langKey="it">Controllo geometria assi</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Necessary control of axis geometry</lang>
<lang langKey="it">Necessario controllo della corretta geometria assi</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>4</id>
<localizedName>
<lang langKey="en">Check of axis geometry</lang>
<lang langKey="it">Controllo geometria assi</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Necessary control of axis geometry</lang>
<lang langKey="it">Necessario controllo della corretta geometria assi</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>5</id>
<localizedName>
<lang langKey="en">Machine System check</lang>
<lang langKey="it">Controllo impianti macchina necessario</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Necessary control Electric / Mechanical / Pneumatic Systems</lang>
<lang langKey="it">Necessario controllo impianti Elettrico / Meccanico / Pneumatico</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>5</id>
<localizedName>
<lang langKey="en">Machine System check</lang>
<lang langKey="it">Controllo impianti macchina necessario</lang>
</localizedName>
<interval>2000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Necessary control Electric / Mechanical / Pneumatic Systems</lang>
<lang langKey="it">Necessario controllo impianti Elettrico / Meccanico / Pneumatico</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>6</id>
<localizedName>
<lang langKey="en">Tool holder clamps management</lang>
<lang langKey="it">Gestione manine portautensili</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Replace composite material tool holder clamps</lang>
<lang langKey="it">Sostituire manine portautensili in materiale composito</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>6</id>
<localizedName>
<lang langKey="en">Tool holder clamps management</lang>
<lang langKey="it">Gestione manine portautensili</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Replace composite material tool holder clamps</lang>
<lang langKey="it">Sostituire manine portautensili in materiale composito</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>7</id>
<localizedName>
<lang langKey="en">Balancing cylinders management</lang>
<lang langKey="it">Gestione cilindri di bilanciamento</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Replace seals on balancing cylinders</lang>
<lang langKey="it">Sostituire tenute su cilindri di bilanciamento</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>7</id>
<localizedName>
<lang langKey="en">Balancing cylinders management</lang>
<lang langKey="it">Gestione cilindri di bilanciamento</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Replace seals on balancing cylinders</lang>
<lang langKey="it">Sostituire tenute su cilindri di bilanciamento</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>1</counterId>
</maintenance>
<maintenance>
<id>8</id>
<localizedName>
<lang langKey="en">Lower-grinder servicing necessary</lang>
<lang langKey="it">Revisione mola inferiore necessaria</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Execute spindle service of Lower-grinder</lang>
<lang langKey="it">Eseguire revisione al mandrino della mola inferiore</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>2</counterId>
</maintenance>
<maintenance>
<id>8</id>
<localizedName>
<lang langKey="en">Lower-grinder servicing necessary</lang>
<lang langKey="it">Revisione mola inferiore necessaria</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Execute spindle service of Lower-grinder</lang>
<lang langKey="it">Eseguire revisione al mandrino della mola inferiore</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>2</counterId>
</maintenance>
<maintenance>
<id>9</id>
<localizedName>
<lang langKey="en">Upper-grinder servicing necessary</lang>
<lang langKey="it">Revisione mola superiore necessaria</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Execute spindle service of Upper-grinder</lang>
<lang langKey="it">Eseguire revisione al mandrino della mola superiore</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>3</counterId>
</maintenance>
<maintenance>
<id>9</id>
<localizedName>
<lang langKey="en">Upper-grinder servicing necessary</lang>
<lang langKey="it">Revisione mola superiore necessaria</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Execute spindle service of Upper-grinder</lang>
<lang langKey="it">Eseguire revisione al mandrino della mola superiore</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>3</counterId>
</maintenance>
<maintenance>
<id>10</id>
<localizedName>
<lang langKey="en">Drill servicing necessary</lang>
<lang langKey="it">Revisione foratore necessario</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Execute spindle service of the driller</lang>
<lang langKey="it">Eseguire revisione al mandrino del foratore</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>4</counterId>
</maintenance>
<maintenance>
<id>10</id>
<localizedName>
<lang langKey="en">Drill servicing necessary</lang>
<lang langKey="it">Revisione foratore necessario</lang>
</localizedName>
<interval>4000</interval>
<deadline>15/07/2018 13:00</deadline>
<type>MACHINE_INTERVAL</type>
<localizedDescription>
<lang langKey="en">Execute spindle service of the driller</lang>
<lang langKey="it">Eseguire revisione al mandrino del foratore</lang>
</localizedDescription>
<unitOfMeasure>mm</unitOfMeasure>
<counterId>4</counterId>
</maintenance>
</maintenances>
</maintenances>
</maintenancesConfig>
@@ -1,53 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="maintenances">
<xs:complexType>
<xs:sequence>
<xs:element name="maintenancesConfig">
<xs:complexType>
<xs:all>
<!-- Maintenance -->
<xs:element name="maintenance" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:all>
<xs:element name="id" type="xs:int" />
<xs:element name="localizedName">
<xs:complexType>
<xs:sequence>
<xs:element name="lang" type="langType" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="interval" type="xs:string" />
<xs:element name="deadline" type="xs:string" />
<xs:element name="localizedDescription">
<xs:complexType>
<xs:sequence>
<xs:element name="lang" type="langType" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unitOfMeasure" type="unitOfMeasureType" />
<xs:element name="type" type="maintenanceType" />
<xs:element name="counterId" type="xs:unsignedInt"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="contact">
<xs:complexType>
<xs:all>
<xs:element name="email" minOccurs='1' maxOccurs='1'/>
<xs:element name="name" minOccurs='1' maxOccurs='1'/>
<xs:element name="phoneNumber" minOccurs='1' maxOccurs='1'/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="maintenances">
<xs:complexType>
<xs:sequence>
<!-- Unique id constraint -->
<xs:unique name="uniqueId">
<xs:selector xpath="maintenance"/>
<xs:field xpath="id" />
</xs:unique>
<!-- Maintenance -->
<xs:element name="maintenance" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:all>
<xs:element name="id" type="xs:int" />
<xs:element name="localizedName">
<xs:complexType>
<xs:sequence>
<xs:element name="lang" type="langType" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="interval" type="xs:string" />
<xs:element name="deadline" type="xs:string" />
<xs:element name="localizedDescription">
<xs:complexType>
<xs:sequence>
<xs:element name="lang" type="langType" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unitOfMeasure" type="unitOfMeasureType" />
<xs:element name="type" type="maintenanceType" />
<xs:element name="counterId" type="xs:unsignedInt"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Unique language id constraint -->
<xs:unique name="uniqueLangKey">
<xs:selector xpath="lang" />
<xs:field xpath="@langKey" />
</xs:unique>
<!-- Unique id constraint -->
<xs:unique name="uniqueId">
<xs:selector xpath="maintenance"/>
<xs:field xpath="id" />
</xs:unique>
<!-- Unique language id constraint -->
<xs:unique name="uniqueLangKey">
<xs:selector xpath="lang" />
<xs:field xpath="@langKey" />
</xs:unique>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- Language Type -->
<xs:complexType name="langType">
+10
View File
@@ -140,4 +140,14 @@
<visualizedName>x1000</visualizedName>
<readOnly>false</readOnly>
</xThousand>
<overstroke>
<enabled>true</enabled>
<visualizedName>Over Stroke</visualizedName>
<readOnly>false</readOnly>
</overstroke>
<feedByPass>
<enabled>true</enabled>
<visualizedName>Feed By Pass</visualizedName>
<readOnly>false</readOnly>
</feedByPass>
</ncSoftKeys>
@@ -45,6 +45,7 @@
<xs:element name="xHundred" type="ncSoftKeyType" minOccurs="0" maxOccurs="1"></xs:element>
<xs:element name="xThousand" type="ncSoftKeyType" minOccurs="0" maxOccurs="1"></xs:element>
<xs:element name="overstroke" type="ncSoftKeyType" minOccurs="0" maxOccurs="1"></xs:element>
<xs:element name="feedByPass" type="ncSoftKeyType" minOccurs="0" maxOccurs="1"></xs:element>
</xs:choice>
</xs:complexType>
</xs:schema>
+2 -6
View File
@@ -58,11 +58,7 @@
</xs:complexType>
</xs:element>
<!-- Button type-->
<xs:complexType name="buttonType">
<xs:all>
@@ -73,7 +69,7 @@
<xs:complexType>
<xs:all>
<xs:element name="memClickIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
<xs:element name="memVisibleIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
<xs:element name="memEnabledIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
</xs:all>
</xs:complexType>
</xs:element>
+6 -5
View File
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<serverConfig>
<ncConfig>
<ncVendor>OSAI</ncVendor> <!-- NO_NC/DEMO/FANUC/SIEMENS/OSAI -->
<showNcHMI>false</showNcHMI>
<ncIpAddress>192.168.139.1</ncIpAddress>
<ncVendor>DEMO</ncVendor> <!-- NO_NC/DEMO/FANUC/SIEMENS/OSAI -->
<showNcHMI>true</showNcHMI>
<ncIpAddress>localhost</ncIpAddress>
<ncPort>8080</ncPort>
<machineModel>Ares 37 OF</machineModel>
<sharedPath>C:\PartPrg\</sharedPath>
<sharedName>//PARTPRG:/</sharedName>
<installationDate>01/01/2019</installationDate>
<mgiOption>false</mgiOption>
</ncConfig>
<softwareProdConfig>
<enabled>true</enabled>
<enabled>false</enabled>
<path>C:\Program Files\Notepad++\notepad++.exe</path>
</softwareProdConfig>
<serverConfig>
@@ -38,7 +39,7 @@
<software>
<longName>NotePad</longName>
<shortName>NP</shortName>
<path>C:\Windows\System32\notepad.exe</path>
<path>C:\Windows\System32\notepa.exe</path>
<arguments></arguments>
<inMainMenuBar>true</inMainMenuBar>
</software>
@@ -14,6 +14,7 @@
<xs:element name="sharedPath" type="xs:string" minOccurs='1' maxOccurs='1'/>
<xs:element name="sharedName" type="xs:string" minOccurs='1' maxOccurs='1'/>
<xs:element name="installationDate" type="xs:string" minOccurs='1' maxOccurs='1'/>
<xs:element name="mgiOption" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
</xs:all>
</xs:complexType>
</xs:element>
+466 -436
View File
@@ -1,471 +1,501 @@
<?xml version="1.0" encoding="utf-8" ?>
<userSoftKeys>
<softKey_procedure>
<active>false</active>
<visible>false</visible>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
<lang langKey="en">Yes</lang>
<lang langKey="it">Si</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>true</active>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>2</plcId>
<localizedNames>
<lang langKey="en">Limitswitch bypass</lang>
<lang langKey="it">Bypass extracorsa</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_toggle>
<softKey_procedure>
<active>true</active>
<visible>true</visible>
<category>1</category>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>1</plcId>
<plcId>3</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
<lang langKey="en">Automatic zeroing</lang>
<lang langKey="it">Azzeramento automatico degli assi con 2 sec di ritardo</lang>
</localizedNames>
</softKey_toggle>
<softKey_group>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>true</active>
<visible>true</visible>
<category>1</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<category>4</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>5</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
<lang langKey="en">Set limits</lang>
<lang langKey="it">Set limiti</lang>
</localizedNames>
<subKeys>
<subKey active="false" plcId="1"> 1 </subKey>
<subKey active="true" plcId="2"> 1 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<visible>true</visible>
</softKey_procedure>
<softKey_toggle>
<active>false</active>
<visible>true</visible>
<category>2</category>
<category>5</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>6</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> 1 </subKey>
<subKey active="true" plcId="2"> 1 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> 1 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> 1 </subKey>
<subKey active="true" plcId="2"> 1 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> 1 </subKey>
<subKey active="true" plcId="2"> 1 </subKey>
<subKey active="true" plcId="3"> 1 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> 1 </subKey>
<subKey active="true" plcId="2"> 2 </subKey>
<subKey active="true" plcId="3"> 3 </subKey>
<subKey active="true" plcId="4"> 4 </subKey>
<subKey active="true" plcId="5"> 5 </subKey>
<subKey active="true" plcId="6"> 6 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> 1 </subKey>
<subKey active="true" plcId="2"> 2 </subKey>
<subKey active="true" plcId="3"> 3 </subKey>
<subKey active="true" plcId="4"> 4 </subKey>
<subKey active="true" plcId="5"> 5 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> A </subKey>
<subKey active="true" plcId="2"> B </subKey>
<subKey active="true" plcId="3"> C </subKey>
<subKey active="true" plcId="4"> D </subKey>
<subKey active="true" plcId="5"> E </subKey>
<subKey active="true" plcId="6"> V </subKey>
</subKeys>
</softKey_group>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
<lang langKey="en">Light</lang>
<lang langKey="it">Illuminazione</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>3</category>
<category>6</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>7</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
<lang langKey="en">POWER ON</lang>
<lang langKey="it">POWER ON</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> A </subKey>
<subKey active="true" plcId="2"> B </subKey>
<subKey active="true" plcId="3"> C </subKey>
<subKey active="true" plcId="4"> D </subKey>
<subKey active="true" plcId="5"> E </subKey>
<subKey active="true" plcId="6"> V </subKey>
</subKeys>
</softKey_group>
<softKey_toggle>
<visible>true</visible>
</softKey_toggle>
<softKey_procedure>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<visible>true</visible>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_group>
<active>true</active>
<visible>true</visible>
<category>7</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>8</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
<lang langKey="en">Tutti mag. ind.+prot. chius.</lang>
<lang langKey="it">Tutti mag. ind.+prot. chius.</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_toggle>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>9</plcId>
<localizedNames>
<lang langKey="en">POWER OFF</lang>
<lang langKey="it">POWER OFF</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_procedure>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>109</plcId>
<localizedNames>
<lang langKey="en">START SIEMENS</lang>
<lang langKey="it">START SIEMENS</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>10</plcId>
<localizedNames>
<lang langKey="en">START FANUC</lang>
<lang langKey="it">START FANUC</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_toggle>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>11</plcId>
<localizedNames>
<lang langKey="en">Selettore port. disco mob.</lang>
<lang langKey="it">Selettore port. disco mob.</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>12</plcId>
<localizedNames>
<lang langKey="en">Sbloccaggio UT</lang>
<lang langKey="it">Sbloccaggio UT</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>13</plcId>
<localizedNames>
<lang langKey="en">Ut. Bloccato in mandr.</lang>
<lang langKey="it">Ut. Bloccato in mandr.</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_procedure>
<active>false</active>
<category>4</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>14</plcId>
<localizedNames>
<lang langKey="en">Coupled tables</lang>
<lang langKey="it">Tavole accoppiate</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>false</active>
<category>4</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>15</plcId>
<localizedNames>
<lang langKey="en">Pendular tables</lang>
<lang langKey="it">Tavole pendolare</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>false</active>
<category>7</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>16</plcId>
<localizedNames>
<lang langKey="en">Table 1</lang>
<lang langKey="it">Tavola 1</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>false</active>
<category>7</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>17</plcId>
<localizedNames>
<lang langKey="en">Table 2</lang>
<lang langKey="it">Tavola 2</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_toggle>
<active>false</active>
<category>6</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>18</plcId>
<localizedNames>
<lang langKey="en">Tool magazine protection 1</lang>
<lang langKey="it">Protezione magazzino 1</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>6</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>19</plcId>
<localizedNames>
<lang langKey="en">Tool magazine protection 2</lang>
<lang langKey="it">Protezione magazzino 2</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_group>
<active>true</active>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Vacuum pumps:</lang>
<lang langKey="it">Pompe vuoto:</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="1"> A </subKey>
<subKey active="true" plcId="2"> B </subKey>
<subKey active="true" plcId="3"> C </subKey>
<subKey active="true" plcId="4"> D </subKey>
<subKey active="true" plcId="5"> E </subKey>
<subKey active="true" plcId="6"> V </subKey>
<subKey active="true" plcId="21"> 2 </subKey>
<subKey active="true" plcId="20"> 1 </subKey>
<!-- <subKey plcId="23"> 4 </subKey> -->
<!-- <subKey plcId="22"> 3 </subKey> -->
</subKeys>
<visible>true</visible>
</softKey_group>
<softKey_group>
<active>false</active>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Auxiliary vacuum clamps:</lang>
<lang langKey="it">Bloccaggi ausiliari vuoto:</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="27"> 2 </subKey>
<subKey active="true" plcId="26"> 1 </subKey>
</subKeys>
<visible>true</visible>
</softKey_group>
<softKey_group>
<active>true</active>
<category>2</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">RAPID OVERRIDE:</lang>
<lang langKey="it">RAPID OVERRIDE:</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="28"> R 0% </subKey>
<subKey active="true" plcId="29"> R 50% </subKey>
<subKey active="true" plcId="30"> R 100% </subKey>
</subKeys>
<visible>true</visible>
</softKey_group>
<softKey_group>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">JOG OVERRIDE:</lang>
<lang langKey="it">JOG OVERRIDE:</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="36"> J 0% </subKey>
<subKey active="true" plcId="37"> J 50% </subKey>
<subKey active="true" plcId="38"> J 100% </subKey>
<subKey active="true" plcId="39"> K4 </subKey>
</subKeys>
<visible>true</visible>
</softKey_group>
<softKey_group>
<active>true</active>
<category>5</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Set origin G:</lang>
<lang langKey="it">Set origini G: </lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="40"> 55 </subKey>
<subKey active="true" plcId="41"> 56 </subKey>
<subKey active="true" plcId="42"> 57 </subKey>
<subKey active="true" plcId="43"> 58 </subKey>
<subKey active="true" plcId="35"> 59 </subKey>
</subKeys>
<visible>true</visible>
</softKey_group>
<softKey_procedure>
<active>true</active>
<category>5</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>44</plcId>
<localizedNames>
<lang langKey="en">Customer 1</lang>
<lang langKey="it">Customer 1</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>true</active>
<category>5</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>45</plcId>
<localizedNames>
<lang langKey="en">Customer 2</lang>
<lang langKey="it">Customer 2</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>true</active>
<category>5</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>46</plcId>
<localizedNames>
<lang langKey="en">Machine parking</lang>
<lang langKey="it">Parcheggio macchina</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>false</active>
<category>6</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>47</plcId>
<localizedNames>
<lang langKey="en">Tooling stock</lang>
<lang langKey="it">Attrezzaggio macchina</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_procedure>
<active>true</active>
<category>5</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>48</plcId>
<localizedNames>
<lang langKey="en">Restore tool change</lang>
<lang langKey="it">Ripristino cambio utensile</lang>
</localizedNames>
<visible>true</visible>
</softKey_procedure>
<softKey_toggle>
<active>false</active>
<category>6</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>49</plcId>
<localizedNames>
<lang langKey="en">Suction</lang>
<lang langKey="it">Aspirazione</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_group>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Brakes ON/FF:</lang>
<lang langKey="it">Freni ON/OFF</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="50"> B </subKey>
<subKey active="true" plcId="51"> C </subKey>
</subKeys>
<visible>true</visible>
</softKey_group>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>52</plcId>
<localizedNames>
<lang langKey="en">Tool blower</lang>
<lang langKey="it">Soffiatore esterno utensile</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>53</plcId>
<localizedNames>
<lang langKey="en">Internal tool blower</lang>
<lang langKey="it">Soffiatore interno utensile</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>54</plcId>
<localizedNames>
<lang langKey="en">Cold air blower</lang>
<lang langKey="it">Soffiatore aria fredda</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>55</plcId>
<localizedNames>
<lang langKey="en">External tool coolant</lang>
<lang langKey="it">Nebulizzatore esterno utensile</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>56</plcId>
<localizedNames>
<lang langKey="en">Internal tool coolant</lang>
<lang langKey="it">Nebulizzatore interno utensile</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>57</plcId>
<localizedNames>
<lang langKey="en">Internal water</lang>
<lang langKey="it">Acqua interna</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_toggle>
<active>false</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<plcId>58</plcId>
<localizedNames>
<lang langKey="en">External water</lang>
<lang langKey="it">Acqua esterna</lang>
</localizedNames>
<visible>true</visible>
</softKey_toggle>
<softKey_group>
<active>false</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">PCP</lang>
<lang langKey="it">PCP</lang>
</localizedNames>
<subKeys>
<subKey active="true" plcId="67"> 2 </subKey>
<subKey active="true" plcId="66"> 1 </subKey>
</subKeys>
<visible>true</visible>
</softKey_group>
</userSoftKeys>
+4 -2
View File
@@ -14,6 +14,7 @@ namespace Step.Config
public static SoftwareProdConfigModel SoftwareProdConfig;
public static MachineModel MachineConfig;
public static List<MaintenanceConfigModel> MaintenancesConfig;
public static ContactModel ContactConfig;
public static List<FunctionAccessModel> FunctionsAccessConfig;
public static List<DTORuntimeFunctionalityModel> AllFunctionalityDisabled;
@@ -33,13 +34,14 @@ namespace Step.Config
public static AreasConfigModel ScadaConfig;
public static AreasConfigModel JobEditorConfig;
public static AreasConfigModel UsersConfig;
public static List<ScadaSchemaModel> ProductionScadaSchema = new List<ScadaSchemaModel>();
public static List<ScadaSchemaModel> ConfiguredScadaSchema = new List<ScadaSchemaModel>();
public static List<ScadaSchemaModel> SubscribedScada = new List<ScadaSchemaModel>();
public static List<string> MacrosConfig;
public static string CMSMainProgramContent;
}
}
+30 -10
View File
@@ -35,12 +35,14 @@ namespace Step.Config
ReadToolManagerConfig();
ReadMacros();
ReadScadaFile();
//ReadMainProgram();
}
catch (XmlException ex)
{
ExceptionManager.Manage(ERROR_LEVEL.FATAL,
"Error while reading file: " + ex.SourceUri +
"\n Error: " + ex.Message
"\n Error: " + ex.Message,
true
);
}
catch (Exception ex)
@@ -48,7 +50,7 @@ namespace Step.Config
var message = ex.Message;
if (ex.InnerException != null)
message += "\n"+ex.InnerException.Message;
ExceptionManager.Manage(ERROR_LEVEL.FATAL, message);
ExceptionManager.Manage(ERROR_LEVEL.FATAL, message, true);
}
}
@@ -77,7 +79,6 @@ namespace Step.Config
return xmlConfigFile;
}
private static void validateScada(string configSchemaFilePath, string configFilePath)
{
// Create new instance
@@ -141,8 +142,6 @@ namespace Step.Config
case AREAS.USERS_KEY:
SetAreaValue(ref UsersConfig, element);
break;
}
}
@@ -279,7 +278,8 @@ namespace Step.Config
NcName = x.Element("machineModel").Value,
SharedPath = x.Element("sharedPath").Value,
SharedName = x.Element("sharedName").Value,
InstallationDate = x.Element("installationDate").Value
InstallationDate = x.Element("installationDate").Value,
MgiOption = Convert.ToBoolean(x.Element("mgiOption").Value)
}).FirstOrDefault();
// Read Prod Software Config with LINQ
@@ -345,10 +345,21 @@ namespace Step.Config
// Get Maintenances file handler
XDocument xmlConfigFile = GetXmlHandlerWithValidator(MAINTENANCES_CONFIG_SCHEMA_PATH, MAINTENANCES_CONFIG_PATH);
MaintenancesConfig = xmlConfigFile
.Root
.Elements()
.ToList()
ContactConfig = xmlConfigFile
.Descendants("contact")
.Select(x =>
new ContactModel()
{
Name = x.Element("name").Value,
Email = x.Element("email").Value,
PhoneNumber = x.Element("phoneNumber").Value
})
.FirstOrDefault();
MaintenancesConfig = xmlConfigFile
.Descendants("maintenances")
.Elements("maintenance")
.Select(x =>
new MaintenanceConfigModel()
{
@@ -549,6 +560,15 @@ namespace Step.Config
.ToList();
}
public static void ReadMainProgram()
{
if (File.Exists(MAIN_PROGRAM_CONFIG_PATH))
{
CMSMainProgramContent = File.ReadAllText(MAIN_PROGRAM_CONFIG_PATH);
}
}
#endregion Read config from file from configuration
}
}
+3
View File
@@ -63,6 +63,9 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="Config\customMainProgram.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Config\toolManagerConfig.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+40 -20
View File
@@ -514,9 +514,9 @@ public static class ThreadsFunctions
try
{
// Try connection
CmsError libraryError = ncHandler.Connect();
CmsError libraryError = ncHandler.Connect();
if (libraryError.errorCode != 0)
ManageLibraryError(libraryError);
ManageLibraryError(libraryError);
while (true)
{
@@ -978,8 +978,6 @@ public static class ThreadsFunctions
Thread.Sleep(1000);
}
if (ServerStartupConfig.AutoOpenCmsClient)
StartCMSClient(null);
if(NcConfig.NcVendor == NC_VENDOR.FANUC || NcConfig.NcVendor == NC_VENDOR.OSAI)
@@ -988,16 +986,21 @@ public static class ThreadsFunctions
{
toolTable.Connect();
// After reconecction write option
cmsError = toolTable.WriteOption();
// Check if there are blocked magazines
cmsError = toolTable.RestoreTableLock();
cmsError = toolTable.SetupNcToolManager();
if (cmsError.IsError())
ManageLibraryError(cmsError);
// cmsError = toolTable.RestoreTableLock();
}
}
// Start/Restart NC threads
ThreadsHandler.StartWorkers();
if (!cmsError.IsError())
{
if (ServerStartupConfig.AutoOpenCmsClient)
StartCMSClient();
reconnectionIsRunning = false;
// Start/Restart NC threads
ThreadsHandler.StartWorkers();
reconnectionIsRunning = false;
}
}
public static void RestoreConnection()
@@ -1043,6 +1046,7 @@ public static class ThreadsFunctions
break;
case CMS_ERROR_CODES.INTERNAL_ERROR:
case CMS_ERROR_CODES.OPTION_NOT_CONSISTENT:
Manage(ERROR_LEVEL.FATAL, cmsError.localizationKey);
break;
@@ -1161,22 +1165,38 @@ public static class ThreadsFunctions
return sleep;
}
public static void StartCMSClient(string url)
public static void StartCMSClient()
{
//Setup the Path Variable
string CMSClientPath = "";
if (!ClientIsRunning())
{
// Check if the system is 64/32 bit
if (Environment.Is64BitOperatingSystem && File.Exists(CLIENT_PATH_64))
CMSClientPath = CLIENT_PATH_64;
else if (File.Exists(CLIENT_PATH_86))
CMSClientPath = CLIENT_PATH_86;
if (!String.IsNullOrEmpty(CMSClientPath))
Process.Start(CMSClientPath, url);
ThreadsHandler.StartClient = new Thread(() => clientProcess());
ThreadsHandler.StartClient.Start();
}
}
private static void clientProcess()
{
string CMSClientPath = "";
// Check if the system is 64/32 bit
if (Environment.Is64BitOperatingSystem && File.Exists(CLIENT_PATH_64))
CMSClientPath = CLIENT_PATH_64;
else if (File.Exists(CLIENT_PATH_86))
CMSClientPath = CLIENT_PATH_86;
if (!String.IsNullOrEmpty(CMSClientPath))
{
Process pr = Process.Start(CMSClientPath, null);
if (ServerStartupConfig.AutoOpenCmsClient)
{
pr.WaitForExit();
MessageServices.Current.Publish(SEND_STOP_SERVER);
}
}
}
private static bool ClientIsRunning()
{
Process[] p = Process.GetProcessesByName(CLIENT_EXE_NAME_NOEXT);
+11 -1
View File
@@ -31,6 +31,8 @@ namespace Step.Core
};
private volatile static List<Thread> RunningThreadsList = new List<Thread>();
public static Thread StartClient;
internal volatile static Dictionary<string, string> RunningThreadStatus = new Dictionary<string, string>();
public static void Start()
@@ -89,10 +91,18 @@ namespace Step.Core
RunningThreadsList.ForEach(thread =>
{
thread.Abort();
});
});
if(ThreadsHandler.StartClient != null)
ThreadsHandler.StartClient.Abort();
//Abort Connect Thread
ThreadsFunctions.AbortNcConnection();
}
public static void StartClientFromUI()
{
ThreadsFunctions.StartCMSClient();
}
}
}
@@ -148,6 +148,13 @@ namespace Step.Database.Controllers
return dbCtx.AlarmOccurrences.Count();
}
public void EmptyAlarms()
{
int numberOfRows = CountRows();
dbCtx.Database.ExecuteSqlCommand("DELETE FROM alarm_occurrence LIMIT {0}", numberOfRows);
}
#region NOTES
public List<DTOAlarmNoteModel> GetNotesByAlarmDescId(int alarmDescriptionId, ALARM_SOURCE source)
@@ -93,6 +93,18 @@ namespace Step.Database.Controllers
return false;
}
public bool RoleIsAdminOrHigher(int roleId)
{
var tmpRole = dbCtx.Roles
.ToList()
.First(X => X.RoleId == roleId);
if (tmpRole == null)
return false;
else
return tmpRole.Level >= MIN_ADMIN_ROLE;
}
public int CompareUsersRole(int firstUserId, int secondUserId, int machineId)
{
MachineUserModel firstUser = FindByUserId(machineId, firstUserId);
@@ -594,6 +594,7 @@ namespace Step.Database.Controllers
if (families.FirstOrDefault(x => x.FamilyId == family.FamilyId) == null)
{
dbCtx.Families.Add(family);
// Set status
importStatus.Add(new DTOImportStatusModel()
{
Id = family.FamilyId,
@@ -603,6 +604,7 @@ namespace Step.Database.Controllers
}
else
{
// Set duplicated status
importStatus.Add(new DTOImportStatusModel()
{
Id = family.FamilyId,
@@ -669,5 +671,6 @@ namespace Step.Database.Controllers
return importStatus;
}
}
}
+4 -2
View File
@@ -238,10 +238,12 @@ namespace Step.Database.Controllers
return GetUserInfo(userId);
}
public Boolean isCMSRole(int roleId)
public bool isCMSRole(int roleId)
{
var tmpRole = dbCtx.Roles
.ToList()
.First(X => X.RoleId == roleId);
var tmpRole = dbCtx.Roles.ToList().First(X => X.RoleId == roleId);
if (tmpRole == null)
return true;
else
+16 -15
View File
@@ -9,6 +9,7 @@ using System.Data.Entity.Migrations;
using System.Globalization;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using static Step.Config.ServerConfig;
using static Step.Model.Constants;
using static Step.Utils.ExceptionManager;
@@ -58,18 +59,24 @@ namespace Step.Database
return new DatabaseContext();
}
public static void SetUpDbConnectionAndDbConfig()
public static bool SetUpDbConnectionAndDbConfig()
{
try
{
System.Data.Entity.Database.SetInitializer<DatabaseContext>(null);
// Make sure database exists.
using (var db = new DatabaseContext())
ServiceController service = new ServiceController("MySQL");
try
{
db.Database.Initialize(false);
TimeSpan timeout = TimeSpan.FromSeconds(2);
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
Manage(ERROR_LEVEL.FATAL, "Database not started");
return false;
}
System.Data.Entity.Database.SetInitializer<DatabaseContext>(null);
var migrator = new DbMigrator(new Configuration());
if (migrator.GetPendingMigrations().Any())
@@ -98,16 +105,10 @@ namespace Step.Database
catch (Exception ex)
{
Manage(ERROR_LEVEL.FATAL, ex);
return false;
}
//catch (MySql.Data.MySqlClient.MySqlException ex)
//{
// if (ex.Number == 1042) // Can't find MySQLServer
// Manage(ERROR_LEVEL.FATAL, ex);
// else
// Manage(ERROR_LEVEL.ERROR, ex);
//}
return true;
}
public static void FindOrCreateMachineUniqueId()
@@ -163,7 +164,7 @@ namespace Step.Database
// Create default CUSTOMER user
usersController.CreateCmsDefaultUserIfNotExists(MachineConfig.MachineId, "admin", "admin", "customer", "admin", Config.ServerConfig.ServerStartupConfig.Language, ROLE_IDS.CUSTOMER_ADMIN);
usersController.CreateCmsDefaultUserIfNotExists(MachineConfig.MachineId, "operator", "operator", "customer", "operator", Config.ServerConfig.ServerStartupConfig.Language, ROLE_IDS.CUSTOMER_OPERATOR);
usersController.CreateCmsDefaultUserIfNotExists(MachineConfig.MachineId, "mantainer", "mantainer", "customer", "mantainer", Config.ServerConfig.ServerStartupConfig.Language, ROLE_IDS.CUSTOMER_MANTAINER);
usersController.CreateCmsDefaultUserIfNotExists(MachineConfig.MachineId, "maintainer", "maintainer", "customer", "maintainer", Config.ServerConfig.ServerStartupConfig.Language, ROLE_IDS.CUSTOMER_MAINTAINER);
}
}
else
+1 -1
View File
@@ -24,7 +24,7 @@ namespace Step.Database.Migrations
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_ADMIN, Level = 30, Name = "Admin" },
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_OPERATOR, Level = 20, Name = "Operator" },
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_MANTAINER, Level = 10, Name = "Mantainer" }
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_MAINTAINER, Level = 10, Name = "Maintainer" }
);
context.FunctionsAccess.AddOrUpdate(
+1
View File
@@ -91,6 +91,7 @@
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Threading.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Channels.4.5.0\lib\netstandard2.0\System.Threading.Channels.dll</HintPath>
</Reference>
@@ -6,7 +6,7 @@ namespace Step.Model.ConfigModels
public class MaintenanceConfigModel
{
public int Id { get; set; }
public Dictionary<string, string> LocalizedName { get; set; }
public Dictionary<string, string> LocalizedName { get; set; }
public TimeSpan Intervall { get; set; }
public DateTime Deadline { get; set; }
public string Type { get; set; }
@@ -15,4 +15,11 @@ namespace Step.Model.ConfigModels
public Dictionary<string, string> LocalizedDescription { get; set; }
public string UnitOfMeasure { get; set; }
}
public class ContactModel
{
public string Name { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
}
+1
View File
@@ -17,5 +17,6 @@ namespace Step.Model.ConfigModels
public string SharedPath { get; set; }
public string SharedName { get; set; }
public string InstallationDate { get; set; }
public bool MgiOption { get; set; }
}
}
+10 -5
View File
@@ -20,13 +20,15 @@ namespace Step.Model
}
public const int MIN_CMS_ROLE = 100;
public const int MIN_ADMIN_ROLE = 30;
public enum ROLE_IDS
{
CMS_SERVICE = 1,
CMS_UT = 2,
CUSTOMER_ADMIN = 3,
CUSTOMER_OPERATOR = 4,
CUSTOMER_MANTAINER = 5
CUSTOMER_MAINTAINER = 5
}
public enum ACTIONS
@@ -162,12 +164,12 @@ namespace Step.Model
public const string AREAS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "areasConfigValidator.xsd";
public const string AREAS_CONFIG_PATH = CONFIG_DIRECTORY + "areasConfig.xml";
public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd";
public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd";
public const string MAINTENANCES_CONFIG_PATH = CONFIG_DIRECTORY + "maintenancesConfig.xml";
public const string USER_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "userSoftKeyConfigValidator.xsd";
public const string USER_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "userSoftKeyConfig.xml";
public const string ALARMS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "alarmsConfigValidator.xsd";
public const string ALARMS_CONFIG_PATH = CONFIG_DIRECTORY + "alarmsConfig.xml";
@@ -181,7 +183,9 @@ namespace Step.Model
public const string TOOL_MANAGER_CONFIG_PATH = CONFIG_DIRECTORY + "toolManagerConfig.xml";
public const string MACROS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "macrosConfigValidator.xsd";
public const string MACROS_CONFIG_PATH = CONFIG_DIRECTORY + "macrosConfig.xml";
public const string MACROS_CONFIG_PATH = CONFIG_DIRECTORY + "macrosConfig.xml";
public const string MAIN_PROGRAM_CONFIG_PATH = CONFIG_DIRECTORY + "customMainProgram.txt";
public static string LANGUAGE_PACK_DIRECTORY = BASE_PATH + "\\languages\\";
public static string LANGUAGE_SCHEMA_PATH = BASE_PATH + "\\LanguageValidator.xsd";
@@ -194,6 +198,7 @@ namespace Step.Model
public const string SEND_STOP_SERVER = "STOP_SERVER";
public const string SEND_MESSAGE = "SEND_MESSAGE";
public const string SEND_STOP_THREADS = "SEND_STOP_THREADS";
public const string SEND_NC_STATUS = "NC_STATUS";
public const string SEND_THREADS_STATUS = "THREAD_STATUS";
public const string SHOW_MSG_UI = "SHOW_MSG_UI";
@@ -14,6 +14,7 @@ namespace Step.Model.DTOModels
public bool ProdEnabled { get; set; }
public string ProdPath { get; set; }
public bool Autorun { get; set; }
public bool MgiOption { get; set; }
public List<ExtSoftwareModel> ExtSoftwares { get; set; }
public CultureInfo DefaultLanguage
@@ -1,4 +1,5 @@
using System;
using System.Linq;
using System.Reflection;
namespace Step.Model.DTOModels
@@ -17,7 +18,7 @@ namespace Step.Model.DTOModels
public string PlcVersion { get; set; }
public string UnitOfMeasurement { get; set; }
public string ServerVersion { get; set; }
public string CoreLibraryVersion { get; set; }
public string CoreLibraryVersion { get; set; }
private DateTime buildDate;
private Version v;
@@ -29,10 +30,12 @@ namespace Step.Model.DTOModels
v = Assembly.GetEntryAssembly()?.GetName().Version;
if(v != null)
buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2);
buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2);
// Get first 2 number of the version
var tmp = v.ToString().Split('.').Take(2).ToArray();
// Get Server version
ServerVersion = $"{v} ({buildDate.ToString("d")})";
ServerVersion = $"{string.Join(".", tmp)} ({buildDate.ToString("d")})";
//Get Library Version
CoreLibraryVersion = "2.0.0";
}
+21 -2
View File
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using CMS_CORE_Library.Models;
using System.Collections.Generic;
using System.Linq;
using static CMS_CORE_Library.Models.DataStructures;
@@ -18,6 +19,12 @@ namespace Step.Model.DTOModels
public bool CanLoadProgram;
public string ProcessMessage;
public byte RapidOverride;
public byte WorkOverride;
public OffsetModel offsetData;
public DTOProcessesDataModel()
{
ProcessMessage = "";
@@ -59,13 +66,25 @@ namespace Step.Model.DTOModels
if (ActiveOrigin != item.ActiveOrigin)
return false;
if (ProcessMessage != item.ProcessMessage)
if (ProcessMessage != item.ProcessMessage)
return false;
if (UnitMeasure != item.UnitMeasure)
return false;
if (CanLoadProgram != item.CanLoadProgram)
return false;
if (RapidOverride != item.RapidOverride)
return false;
if (WorkOverride != item.WorkOverride)
return false;
if (offsetData.RealLength != item.offsetData.RealLength)
return false;
if (offsetData.RealRadius != item.offsetData.RealRadius)
return false;
return true;
@@ -104,8 +104,8 @@ namespace Step.Model.DTOModels.Scada
//[XmlElement("id")]
public int Id { get; set; }
[XmlElement("label")]
public ScadaSchemaLabelDataModel Label { get; set; }
//[XmlElement("label")]
//public ScadaSchemaLabelDataModel Label { get; set; }
[XmlElement("position")]
public ScadaSchemaPositionModel Position { get; set; }
@@ -66,7 +66,7 @@ namespace Step.Model.DTOModels.ToolModels
return new DTONcShankModel()
{
Id = obj.ShankId,
Balluf = (ushort)obj.Balluf,
Balluf = (ushort?)obj.Balluf,
MagazinePositionType = obj.MagazinePositionType,
MagazineId = obj.MagazineId,
PositionId = obj.PositionId,
@@ -97,5 +97,30 @@ namespace Step.Model.DatabaseModels
ReviveDelta = (ushort)obj.ReviveDelta
};
}
public static explicit operator DbNcFamilyModel(NcFamilyModel obj)
{
return new DbNcFamilyModel()
{
FamilyId = (short)obj.FamilyId,
ToolType = obj.ToolType,
RightSize = obj.RightSize,
LeftSize = obj.LeftSize,
TcpTable = obj.TcpTable,
Gamma = obj.Gamma,
CoolingByte = obj.CoolingByte,
RotationType = obj.RotationType,
MaxLoad = obj.MaxLoad,
MaxSpeed = obj.MaxSpeed,
MinLoadPctAutoload = obj.MinLoadPctAutoload,
MaxLoadPctAutoload = obj.MaxLoadPctAutoload,
MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation,
MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation,
DynamicCompensation = (byte)obj.DynamicCompensation,
LifeType = obj.LifeType,
NominalLife = obj.NominalLife,
ReviveDelta = obj.ReviveDelta
};
}
}
}
+14
View File
@@ -57,5 +57,19 @@ namespace Step.Model.DatabaseModels
OriginPositionId = obj.OriginPositionId == null ? (ushort)0 : (ushort)obj.OriginPositionId.Value,
};
}
public static explicit operator DbNcShankModel(NcShankModel obj)
{
return new DbNcShankModel()
{
ShankId = (short)obj.ShankId,
Balluf = obj.Balluf == 0 ? null : (ushort?)obj.Balluf,
MagazineId = obj.MagazineId == 0 ? null : (byte?)obj.MagazineId,
PositionId = obj.PositionId == 0 ? null : (ushort?)obj.PositionId,
MagazinePositionType = obj.MagazinePositionType,
OriginMagazineId = obj.OriginMagazineId == 0 ? null : (byte?)obj.OriginMagazineId,
OriginPositionId = obj.OriginPositionId == 0 ? null : (ushort?)obj.OriginPositionId,
};
}
}
}
+17
View File
@@ -70,5 +70,22 @@ namespace Step.Model.DatabaseModels
OffsetId3 = (ushort)(obj.OffsetId3 == null ? 0 : obj.OffsetId3.Value)
};
}
public static explicit operator DbNcToolModel(NcToolModel obj)
{
return new DbNcToolModel()
{
ToolId = obj.ToolId,
FamilyId = obj.FamilyId,
OffsetLength = obj.OffsetLength,
ResidualLife = (ushort)obj.ResidualLife,
Status = obj.Status,
ResidualRevive = (ushort)obj.ResidualRevive,
ShankId = obj.ShankId == 0 ? null : (short?)obj.ShankId,
OffsetId1 = obj.OffsetId1 == 0 ? null : (short?)obj.OffsetId1,
OffsetId2 = obj.OffsetId2 == 0 ? null : (short?)obj.OffsetId2,
OffsetId3 = obj.OffsetId3 == 0 ? null : (short?)obj.OffsetId3
};
}
}
}
+10 -2
View File
@@ -13,7 +13,8 @@ using Step.Model.DTOModels.JobModels;
using Step.Utils;
using Step.Database.Controllers;
using static Step.Database.Controllers.QueueController;
using System.Text.RegularExpressions;
namespace Step.NC
{
public class NcFileHandler : NcHandler
@@ -256,8 +257,15 @@ namespace Step.NC
if (cmsError.IsError())
return cmsError;
// Activate updated program
// Custom part program management
//if(String.IsNullOrEmpty(CMSMainProgramContent))
// Activate directly program
return numericalControl.FILES_WSetActiveProgram(selectedProcess, newFilePath, ref programData);
//else
//{
// // Activate updated program with custom main program
// return numericalControl.FILES_WUploadCustomMainProgramAndActivate(selectedProcess, CMSMainProgramContent, ref programData);
//}
}
else
{
+11 -5
View File
@@ -113,7 +113,7 @@ namespace Step.NC
return cmsError;
}
public CmsError GetAxesPositionsByProcess(ushort processNum, out DTOAxesModel axes)
public CmsError GetAxesPositionsByProcess(ushort processNum, out DTOAxesModel axes)
{
axes = new DTOAxesModel();
@@ -432,6 +432,12 @@ namespace Step.NC
processesData.ActiveOffsetId = selectedData.ActiveOffsetId;
processesData.ProcessMessage = selectedData.ProcessMessage;
// Overrides
processesData.RapidOverride = selectedData.RapidOverride;
processesData.WorkOverride = selectedData.WorkOverride;
processesData.offsetData = selectedData.OffsetData;
// Measure
processesData.UnitMeasure = UMeas;
@@ -968,9 +974,9 @@ namespace Step.NC
scadas.Add(scadaValue);
// Add id to read scada
alreadyReadScada.Add(schema.Id);
}
}
}
return cmsError;
}
@@ -1000,7 +1006,7 @@ namespace Step.NC
if (cmsError.IsError())
return cmsError;
// Populate & add new object into scada model
scadaValue.Buttons.Add(new DTOScadaButtonModel()
scadaValue.Buttons.Add(new DTOScadaButtonModel()
{
Id = layer.Buttons[i].Id,
Enabled = Convert.ToBoolean(val)
@@ -1068,7 +1074,7 @@ namespace Step.NC
{
IsEnabled = false, //Convert.ToBoolean(val),
Value = val2
}
}
});
}
else
+358 -298
View File
@@ -8,7 +8,8 @@ using System.Data.Entity;
using System.Linq;
using static CMS_CORE_Library.Models.DataStructures;
using static Step.Config.ServerConfig;
using static Step.Model.Constants;
namespace Step.NC
{
public class NcToolTableHandler : NcHandler
@@ -112,7 +113,7 @@ namespace Step.NC
DTONewNcFamilyModel newFamily = new DTONewNcFamilyModel();
SupportFunctions.CopyProperties(dtoToolWithFamily, newFamily);
// Update only family data
newFamily = (DTONcFamilyModel)toolsManager.UpdateFamily(dtoToolWithFamily.FamilyId, newFamily);
newFamily = (DTONcFamilyModel)toolsManager.UpdateFamily(dtoToolWithFamily.FamilyId, newFamily);
}
// Update database tool Tool
@@ -120,7 +121,7 @@ namespace Step.NC
// Populate updated tool with offset data
cmsError = GetToolData(dbTool, ref toolWithOffsets);
if (cmsError.IsError())
if (cmsError.IsError())
{
dbContextTransaction.Rollback();
return cmsError;
@@ -137,20 +138,20 @@ namespace Step.NC
{
startIsActive = true;
// Create backup of data stored on the NC and block memory/files accesses
cmsError = numericalControl.TOOLS_WStartEditData();
cmsError = numericalControl.TOOLS_WStartEditData();
if (cmsError.IsError())
{
ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
return cmsError;
}
// If family option is not active, update NC data
//if (!ToolManagerConfig.FamilyOpt)
//{
// Update Nc families
cmsError = UpdateNcFamily(toolsManager);
if (cmsError.IsError())
ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
}
// If family option is not active, update NC data
//if (!ToolManagerConfig.FamilyOpt)
//{
// Update Nc families
cmsError = UpdateNcFamily(toolsManager);
if (cmsError.IsError())
ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
//}
// Update tool
@@ -181,7 +182,7 @@ namespace Step.NC
.FindTools()
.Select(x => (NcToolModel)x)
.Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools
.ToList();
.ToList();
// Update tools
return numericalControl.TOOLS_WUpdateTools(tools);
@@ -189,10 +190,10 @@ namespace Step.NC
public CmsError UpdateOffset(short offsetId, OffsetModel offsetData)
{
return numericalControl.TOOLS_WOffset(offsetId, offsetData);
return numericalControl.TOOLS_WOffset(offsetId, ref offsetData);
}
public CmsError UpdateToolOffsetId(int toolId, int positionId, short offsetId, out DTONcToolModel toolWithOffsets)
public CmsError UpdateToolOffsetId(int toolId, int positionId, short offsetId, out DTONcToolModel toolWithOffsets)
{
toolWithOffsets = new DTONcToolModel();
@@ -273,20 +274,20 @@ namespace Step.NC
CmsError cmsError = NO_ERROR;
if (tool.ShankId != null && shank != null)
{
{
if (shank.MagazineId != null)
{
startIsActive = true;
startIsActive = true;
// Create backup of data stored on the NC and block file accesses
cmsError = numericalControl.TOOLS_WStartEditData();
if (cmsError.IsError())
{
ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
return cmsError;
}
// Update Nc data
cmsError = UpdateNcTools(toolsManager);
cmsError = UpdateNcTools(toolsManager);
}
}
@@ -547,286 +548,345 @@ namespace Step.NC
public CmsError SetupNcToolManager()
{
CmsError cmsError = UpdateMagazinePositionConf();
CmsError cmsError = UpdateMagazinePositionConf(out bool newDb);
if (cmsError.IsError())
return cmsError;
cmsError = WriteOption();
if (cmsError.IsError())
return cmsError;
return NO_ERROR;
}
public CmsError UpdateMagazinePositionConf()
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
// Get database configured positions
List<DbNcMagazinePositionModel> dbPositions = toolsManager.FindMagazinesPositions();
if (dbPositions.Count <= 0)
{
CmsError cmsError = GetMagazineConfiguration(out List<NcMagazineConfigModel> config);
if (cmsError.IsError())
return cmsError;
// Setup new positions list in order to be saved in the database
List<DbNcMagazinePositionModel> fromConfigPosition = new List<DbNcMagazinePositionModel>();
foreach (var conf in config)
{
for (byte i = 1; i <= conf.MaxPositions; i++)
{
// Create new position
fromConfigPosition.Add(new DbNcMagazinePositionModel()
{
MagazineId = conf.Id,
PositionId = i,
Disabled = false,
Type = 0
});
}
}
// Update database
toolsManager.SetupMagazinePositions(fromConfigPosition);
return cmsError;
}
return NO_ERROR;
}
}
public CmsError WriteOption()
{
ToolManagerOptionsModel options = new ToolManagerOptionsModel();
SupportFunctions.CopyProperties(ToolManagerConfig, options);
return numericalControl.TOOLS_WOptions(options);
}
public CmsError GetMagazineConfiguration(out List<NcMagazineConfigModel> config)
{
config = new List<NcMagazineConfigModel>();
// Read configuration
return numericalControl.TOOLS_RMagazineConfig(ref config);
}
public CmsError StartEditData()
{
return numericalControl.TOOLS_WStartEditData();
}
public CmsError StopEditData()
{
return numericalControl.TOOLS_WStopEditData();
}
public CmsError StartEditTooling(int magazineId)
{
return numericalControl.TOOLS_WStartEditTooling(magazineId);
}
public CmsError StopEditTooling(int magazineId)
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
// Get mounted shanks
List<NcShankModel> shanks = toolsManager
.FindShanks()
.Where(x => x.MagazineId != null)
.Select(x => (NcShankModel)x)
.ToList();
// Update shanks
CmsError cmsError = numericalControl.TOOLS_WUpdateShanks(shanks);
if (cmsError.IsError())
return cmsError;
// Get magazine positions
List<NcMagazinePositionModel> positions = toolsManager.FindMagazinesPositions()
.Select(x => (NcMagazinePositionModel)x)
.ToList();
// Update positions
cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions);
if (cmsError.IsError())
return cmsError;
// Get tools
List<NcToolModel> tools = toolsManager
.FindTools()
.Select(x => (NcToolModel)x)
.Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools
.ToList();
// Update tools
cmsError = numericalControl.TOOLS_WUpdateTools(tools);
if (cmsError.IsError())
return cmsError;
// Get families
List<NcFamilyModel> families = toolsManager
.FindFamilies()
.Select(x => (NcFamilyModel)x)
.Where(x => tools.Any(y => y.FamilyId == x.FamilyId)) // Find only families of mounted tools
.ToList();
// Update families
cmsError = numericalControl.TOOLS_WUpdateFamilies(families);
if (cmsError.IsError())
return cmsError;
}
return numericalControl.TOOLS_WStopEditTooling(magazineId);
}
public CmsError GetUpdatedToolsData(out Dictionary<int, byte> updatedStatus, out Dictionary<int, uint> updatedLives)
{
updatedStatus = new Dictionary<int, byte>();
updatedLives = new Dictionary<int, uint>();
return numericalControl.TOOLS_RUpdatedToolsData(ref updatedStatus, ref updatedLives);
}
public CmsError CheckIfShankCanFit(int magazineId, int positionId, DbNcShankModel shankToBeLoaded)
{
CmsError cmsError = GetMagazineConfiguration(out List<NcMagazineConfigModel> magazinesConfig);
if (cmsError.IsError())
return cmsError;
NcMagazineConfigModel magConfig = magazinesConfig.FirstOrDefault(x => x.Id == magazineId);// Get only current magazine config
if (magConfig == null)
return INCORRECT_PARAMETERS_ERROR;
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<DbNcToolModel> magazineMountedTools = toolsManager.GetMountedTools();
// Check if there is a tool already mounted in magazineId and positionId
var toolAlreadyMounted = magazineMountedTools.FirstOrDefault(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId);
if (toolAlreadyMounted != null)
return MAGAZINE_POSITION_OCCUPIED_ERROR;
// Get shank occupied space
toolsManager.GetShankMaxSpaceOccupied(shankToBeLoaded.ShankId, out int maxRight, out int maxLeft);
// Check if tool can fit in the position considering other tools
foreach (var mountedTool in magazineMountedTools)
{
// Check if is not the same position && if is different check if the position is on the same magazine
if (mountedTool.Shank.PositionId != positionId && mountedTool.Shank.MagazineId == magazineId)
{
int decPosition, incPosition;
decPosition = incPosition = mountedTool.Shank.PositionId.Value;
// if it is a circular magazine move position before ( for left case ) or after ( right case ) the location you want to mount the tool
if (magConfig.Type != NC_MAGAZINE_TYPE.BOX_MAGAZINE)
{
decPosition = decPosition < positionId ? decPosition + magConfig.MaxPositions : decPosition;
incPosition = incPosition > positionId ? incPosition - magConfig.MaxPositions : incPosition;
}
// Right check
if (positionId < decPosition)
{
if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == 1))
{
// Calculate left space occupied (with mounted shank)
double leftMounted = decPosition - (mountedTool.Family.LeftSize / 2.0);
// Calculate right space needed (with shank to be loaded)
double rightToBeMount = positionId + (maxRight / 2.0);
if (leftMounted < rightToBeMount)
return MAGAZINE_POSITION_OCCUPIED_ERROR;
}
}
// Left check
if (positionId > incPosition)
{
if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == magConfig.MaxPositions))
{
// Calculate right space occupied (with mounted shank)
double rightMounted = incPosition + (mountedTool.Family.RightSize / 2.0);
// Calculate left space needed (with shank to be loaded)
double leftToBeMounted = positionId - (maxLeft / 2.0);
if (rightMounted > leftToBeMounted)
return MAGAZINE_POSITION_OCCUPIED_ERROR;
}
}
}
}
}
return NO_ERROR;
}
public CmsError GetNcMagazineStatus(out Dictionary<int, bool> status)
{
status = new Dictionary<int, bool>();
return numericalControl.TOOLS_RMagazineStatus(ref status);
}
public CmsError StartAssistedToolingProcedure(ushort toolId, ushort familyId, ushort shankId, ushort magazineId, ushort positionId, ASSISTED_TOOLING_ACTION action)
{
return numericalControl.PLC_WAssistedToolingCmd(toolId, familyId, shankId, magazineId, positionId, action);
}
public CmsError ReadAssistedToolingProcedure(out DTOAssistedToolingEndValueModel data)
{
data = new DTOAssistedToolingEndValueModel();
AssistedToolingModel tmpData = new AssistedToolingModel();
CmsError cmsError = numericalControl.PLC_RAssistedToolingData(ref tmpData);
if (cmsError.IsError())
return cmsError;
data = new DTOAssistedToolingEndValueModel(tmpData);
return cmsError;
}
public CmsError TerminateAssistedProcedure(int magazineId, bool writeData)
{
if (writeData)
{
CmsError cmsError = StartEditTooling(magazineId);
if (!cmsError.IsError())
{
// Write tool table new data
cmsError = StopEditTooling(magazineId);
if (!cmsError.IsError())
{
// Close procedure
return numericalControl.PLC_WTerminateAssistedToolingProcedure();
}
}
return cmsError;
}
else
{
return numericalControl.PLC_WTerminateAssistedToolingProcedure();
}
}
public CmsError GetSelfAdaptiveStep(out DTOSelfAdaptiveModel step)
return cmsError;
using (NcToolManagerController toolManager = new NcToolManagerController())
{
// If database was empty read data from NC and update database
if (newDb)
{
List<NcToolModel> tools = new List<NcToolModel>();
List<NcFamilyModel> families = new List<NcFamilyModel>();
List<NcShankModel> shanks = new List<NcShankModel>();
// Read data from Nc memory
cmsError = numericalControl.TOOLS_RStoredData(ref tools, ref families, ref shanks);
if (cmsError.IsError())
return cmsError;
// Check if there are data
if (tools.Count() > 0 || families.Count() > 0 || shanks.Count() > 0)
{
// Populate import object
DTOExportToolTableModel exp = new DTOExportToolTableModel()
{
Tools = tools.Select(x => (DbNcToolModel)x).ToList(),
Families = families.Select(x =>
{
var fam = (DbNcFamilyModel)x;
fam.Name = "Fam" + fam.FamilyId.ToString();
return fam;
}).ToList(),
Shanks = shanks.Select(x => (DbNcShankModel)x).ToList()
};
// Import
toolManager.ImportData(exp);
}
}
List<DTONcToolModel> databaseTool = toolManager.GetTools();
bool exist = false;
if (databaseTool != null && databaseTool.Count() > 0)
// Check options consistency with database data
exist = databaseTool.Exists(x =>
(!ToolManagerConfig.FamilyOpt && x.FamilyId != x.Id) || // Check family
(!ToolManagerConfig.ShankOpt && x.ShankId != x.Id) || // Check shanks
(!ToolManagerConfig.OffsetOpt && x.OffsetId1 != x.Id && x.OffsetId2 != null && x.OffsetId3 != null) // Check offsets
);
if (exist)
return OPTION_NOT_CONSISTENT_ERROR;
// Check if there are blocked magazines, and release them
cmsError = RestoreTableLock();
if (cmsError.IsError())
return cmsError;
}
return NO_ERROR;
}
public CmsError UpdateMagazinePositionConf(out bool newDb)
{
newDb = false;
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
// Get database configured positions
List<DbNcMagazinePositionModel> dbPositions = toolsManager.FindMagazinesPositions();
if (dbPositions.Count <= 0)
{
// THe software is using a new database
newDb = true;
CmsError cmsError = GetMagazineConfiguration(out List<NcMagazineConfigModel> config);
if (cmsError.IsError())
return cmsError;
// Setup new positions list in order to be saved in the database
List<DbNcMagazinePositionModel> fromConfigPosition = new List<DbNcMagazinePositionModel>();
foreach (var conf in config)
{
for (byte i = 1; i <= conf.MaxPositions; i++)
{
// Create new position
fromConfigPosition.Add(new DbNcMagazinePositionModel()
{
MagazineId = conf.Id,
PositionId = i,
Disabled = false,
Type = 0
});
}
}
// Update database
toolsManager.SetupMagazinePositions(fromConfigPosition);
return cmsError;
}
return NO_ERROR;
}
}
public CmsError WriteOption()
{
ToolManagerOptionsModel options = new ToolManagerOptionsModel();
SupportFunctions.CopyProperties(ToolManagerConfig, options);
return numericalControl.TOOLS_WOptions(options);
}
public CmsError GetMagazineConfiguration(out List<NcMagazineConfigModel> config)
{
config = new List<NcMagazineConfigModel>();
// Read configuration
return numericalControl.TOOLS_RMagazineConfig(ref config);
}
public CmsError StartEditData()
{
return numericalControl.TOOLS_WStartEditData();
}
public CmsError StopEditData()
{
return numericalControl.TOOLS_WStopEditData();
}
public CmsError StartEditTooling(int magazineId)
{
return numericalControl.TOOLS_WStartEditTooling(magazineId);
}
public CmsError StopEditTooling(int magazineId)
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
// Get mounted shanks
List<NcShankModel> shanks = toolsManager
.FindShanks()
.Where(x => x.MagazineId != null)
.Select(x => (NcShankModel)x)
.ToList();
// Update shanks
CmsError cmsError = numericalControl.TOOLS_WUpdateShanks(shanks);
if (cmsError.IsError())
return cmsError;
// Get magazine positions
List<NcMagazinePositionModel> positions = toolsManager.FindMagazinesPositions()
.Select(x => (NcMagazinePositionModel)x)
.ToList();
// Update positions
cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions);
if (cmsError.IsError())
return cmsError;
// Get tools
List<NcToolModel> tools = toolsManager
.FindTools()
.Select(x => (NcToolModel)x)
.Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools
.ToList();
// Update tools
cmsError = numericalControl.TOOLS_WUpdateTools(tools);
if (cmsError.IsError())
return cmsError;
// Get families
List<NcFamilyModel> families = toolsManager
.FindFamilies()
.Select(x => (NcFamilyModel)x)
.Where(x => tools.Any(y => y.FamilyId == x.FamilyId)) // Find only families of mounted tools
.ToList();
// Update families
cmsError = numericalControl.TOOLS_WUpdateFamilies(families);
if (cmsError.IsError())
return cmsError;
}
return numericalControl.TOOLS_WStopEditTooling(magazineId);
}
public CmsError GetUpdatedToolsData(out Dictionary<int, byte> updatedStatus, out Dictionary<int, uint> updatedLives)
{
updatedStatus = new Dictionary<int, byte>();
updatedLives = new Dictionary<int, uint>();
return numericalControl.TOOLS_RUpdatedToolsData(ref updatedStatus, ref updatedLives);
}
public CmsError CheckIfShankCanFit(int magazineId, int positionId, DbNcShankModel shankToBeLoaded)
{
CmsError cmsError = GetMagazineConfiguration(out List<NcMagazineConfigModel> magazinesConfig);
if (cmsError.IsError())
return cmsError;
NcMagazineConfigModel magConfig = magazinesConfig.FirstOrDefault(x => x.Id == magazineId);// Get only current magazine config
if (magConfig == null)
return INCORRECT_PARAMETERS_ERROR;
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<DbNcToolModel> magazineMountedTools = toolsManager.GetMountedTools();
// Check if there is a tool already mounted in magazineId and positionId
var toolAlreadyMounted = magazineMountedTools.FirstOrDefault(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId);
if (toolAlreadyMounted != null)
return MAGAZINE_POSITION_OCCUPIED_ERROR;
// Get shank occupied space
toolsManager.GetShankMaxSpaceOccupied(shankToBeLoaded.ShankId, out int maxRight, out int maxLeft);
// Check if tool can fit in the position considering other tools
foreach (var mountedTool in magazineMountedTools)
{
// Check if is not the same position && if is different check if the position is on the same magazine
if (mountedTool.Shank.PositionId != positionId && mountedTool.Shank.MagazineId == magazineId)
{
int decPosition, incPosition;
decPosition = incPosition = mountedTool.Shank.PositionId.Value;
// if it is a circular magazine move position before ( for left case ) or after ( right case ) the location you want to mount the tool
if (magConfig.Type != NC_MAGAZINE_TYPE.BOX_MAGAZINE)
{
decPosition = decPosition < positionId ? decPosition + magConfig.MaxPositions : decPosition;
incPosition = incPosition > positionId ? incPosition - magConfig.MaxPositions : incPosition;
}
// Right check
if (positionId < decPosition)
{
if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == 1))
{
// Calculate left space occupied (with mounted shank)
double leftMounted = decPosition - (mountedTool.Family.LeftSize / 2.0);
// Calculate right space needed (with shank to be loaded)
double rightToBeMount = positionId + (maxRight / 2.0);
if (leftMounted < rightToBeMount)
return MAGAZINE_POSITION_OCCUPIED_ERROR;
}
}
// Left check
if (positionId > incPosition)
{
if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == magConfig.MaxPositions))
{
// Calculate right space occupied (with mounted shank)
double rightMounted = incPosition + (mountedTool.Family.RightSize / 2.0);
// Calculate left space needed (with shank to be loaded)
double leftToBeMounted = positionId - (maxLeft / 2.0);
if (rightMounted > leftToBeMounted)
return MAGAZINE_POSITION_OCCUPIED_ERROR;
}
}
}
}
}
return NO_ERROR;
}
public CmsError GetNcMagazineStatus(out Dictionary<int, bool> status)
{
status = new Dictionary<int, bool>();
return numericalControl.TOOLS_RMagazineStatus(ref status);
}
public CmsError StartAssistedToolingProcedure(ushort toolId, ushort familyId, ushort shankId, ushort magazineId, ushort positionId, ASSISTED_TOOLING_ACTION action)
{
return numericalControl.PLC_WAssistedToolingCmd(toolId, familyId, shankId, magazineId, positionId, action);
}
public CmsError ReadAssistedToolingProcedure(out DTOAssistedToolingEndValueModel data)
{
data = new DTOAssistedToolingEndValueModel();
AssistedToolingModel tmpData = new AssistedToolingModel();
CmsError cmsError = numericalControl.PLC_RAssistedToolingData(ref tmpData);
if (cmsError.IsError())
return cmsError;
data = new DTOAssistedToolingEndValueModel(tmpData);
return cmsError;
}
public CmsError TerminateAssistedProcedure(int magazineId, bool writeData)
{
if (writeData)
{
CmsError cmsError = StartEditTooling(magazineId);
if (!cmsError.IsError())
{
// Write tool table new data
cmsError = StopEditTooling(magazineId);
if (!cmsError.IsError())
{
// Close procedure
return numericalControl.PLC_WTerminateAssistedToolingProcedure();
}
}
return cmsError;
}
else
{
return numericalControl.PLC_WTerminateAssistedToolingProcedure();
}
}
public CmsError GetSelfAdaptiveStep(out DTOSelfAdaptiveModel step)
{
step = new DTOSelfAdaptiveModel();
byte intStep = 0;
//Get the value
CmsError cmsError = numericalControl.TOOLS_RAdatpivePathStep(ref intStep);
step.Step = intStep;
return cmsError;
}
public CmsError SetSelfAdaptiveStep(DTOSelfAdaptiveModel step)
{
//Limit Value
if (step.Step > 100)
step.Step = 100;
if (step.Step < 0)
step.Step = 0;
//Set the value
return numericalControl.TOOLS_WAdatpivePathStep(step.Step);
}
byte intStep = 0;
//Get the value
CmsError cmsError = numericalControl.TOOLS_RAdatpivePathStep(ref intStep);
step.Step = intStep;
return cmsError;
}
public CmsError SetSelfAdaptiveStep(DTOSelfAdaptiveModel step)
{
//Limit Value
if (step.Step > 100)
step.Step = 100;
if (step.Step < 0)
step.Step = 0;
//Set the value
return numericalControl.TOOLS_WAdatpivePathStep(step.Step);
}
public CmsError RestoreTableLock()
{
List<int> ids = new List<int>();
@@ -834,10 +894,10 @@ namespace Step.NC
CmsError cmsError = numericalControl.TOOLS_RMagazineBlock(ref ids);
if (cmsError.IsError())
return cmsError;
if(ids.Count() > 0)
if (ids.Count() > 0)
{
// Update tables
// Update tables
cmsError = StopEditTooling(ids.FirstOrDefault());
if (cmsError.IsError())
return cmsError;
@@ -846,6 +906,6 @@ namespace Step.NC
}
return NO_ERROR;
}
}
}
}
}
+14 -29
View File
@@ -1,4 +1,5 @@
using Step.Model;
using Step.Core;
using Step.Model;
using Step.Model.DTOModels;
using Step.NC;
using System;
@@ -6,6 +7,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
@@ -56,8 +58,9 @@ namespace Step.UI
if (v != null)
{
DateTime buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2);
var tmp = v.ToString().Split('.').Take(2).ToArray();
this.Text = "Active Control Window";
TXTVersion.Text = "V" + v + " (" + buildDate.ToString("d") + ")";
TXTVersion.Text = "V" + String.Join(".", tmp) + " (" + buildDate.ToString("d") + ")";
}
PswForm = new PasswordForm();
@@ -132,7 +135,7 @@ namespace Step.UI
private void OpenUiButton_Click(object sender, EventArgs e)
{
//Open CMS Client
StartCMSClient(null);
ThreadsHandler.StartClientFromUI();
}
private void StopServerButton_Click(object sender, EventArgs e)
@@ -158,25 +161,6 @@ namespace Step.UI
MessageServices.Current.Publish(SEND_STOP_SERVER);
}
public static void StartCMSClient(string url)
{
//Setup the Path Variable
string CMSClientPath = "";
if (!ClientIsRunning())
{
// Check if the system is 64/32 bit
if (Environment.Is64BitOperatingSystem && File.Exists(CLIENT_PATH_64))
CMSClientPath = CLIENT_PATH_64;
else if (File.Exists(CLIENT_PATH_86))
CMSClientPath = CLIENT_PATH_86;
if (!String.IsNullOrEmpty(CMSClientPath))
Process.Start(CMSClientPath, url);
else
MessageBox.Show("CMS-Active Client not found");
}
}
private void InitializeMessageListeners()
{
MVVMListeners = new List<RegistrationInfo>
@@ -206,15 +190,16 @@ namespace Step.UI
if (!this.IsDisposed)
this.Invoke((MethodInvoker)delegate ()
{
// Open BalloonTip with data
StepNotifyIcon.ShowBalloonTip(1000, message.Title, message.Message, (ToolTipIcon.Error));
// Open BalloonTip with data
StepNotifyIcon.ShowBalloonTip(1000, message.Title, message.Message, (ToolTipIcon.Error));
//ShowMessage on UI
TXTstatus.Text = "[" + DateTime.Now.ToString("T") + "] " + message.Message;
//ShowMessage on UI
TXTstatus.Text = "[" + DateTime.Now.ToString("T") + "] " + message.Message;
// Notify user
if(MessageBox.Show(new Form { TopMost = true }, message.Message, message.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
MessageServices.Current.Publish(SEND_STOP_SERVER);
});
// Notify user
if(MessageBox.Show(message.Message, message.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
MessageServices.Current.Publish(SEND_STOP_SERVER);
}
}),
// NC status handler
+4
View File
@@ -134,6 +134,10 @@
<Project>{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}</Project>
<Name>Step.Config</Name>
</ProjectReference>
<ProjectReference Include="..\Step.Core\Step.Core.csproj">
<Project>{de54ff4c-8390-4489-882a-1bc7d99ef185}</Project>
<Name>Step.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Step.Model\Step.Model.csproj">
<Project>{631375DD-06D3-49BB-8130-D9DDB34C429D}</Project>
<Name>Step.Model</Name>
+21 -6
View File
@@ -66,7 +66,7 @@ namespace Step.Utils
case ERROR_LEVEL.ERROR:
{
LogError(message);
NotifyUsers(CreateMessageModel("Error!", message, ERROR_LEVEL.ERROR));
NotifyUsersAndClose(CreateMessageModel("Error!", message, ERROR_LEVEL.ERROR));
}
break;
case ERROR_LEVEL.FATAL:
@@ -75,7 +75,7 @@ namespace Step.Utils
if (!MessageBoxShow)
{
MessageBoxShow = true;
NotifyUsers(CreateMessageModel("Fatal Error!", message, ERROR_LEVEL.FATAL), beforeFormReady);
NotifyUsersAndClose(CreateMessageModel("Fatal Error!", message, ERROR_LEVEL.FATAL), beforeFormReady);
// Check if the server form is ready (if not i have to close manually)
if (beforeFormReady)
// Close the application
@@ -89,7 +89,7 @@ namespace Step.Utils
if (!MessageBoxShow)
{
MessageBoxShow = true;
NotifyUsers(CreateMessageModel("Generic Error!", message, ERROR_LEVEL.FATAL), beforeFormReady);
NotifyUsersAndClose(CreateMessageModel("Generic Error!", message, ERROR_LEVEL.FATAL), beforeFormReady);
}
}
break;
@@ -99,20 +99,35 @@ namespace Step.Utils
private static void LogAndNotifyUsers(ErrorMessageModel error)
{
// Log
LogMessage(error.Message, (ERROR_LEVEL)error.ErrorLevel);
NotifyUsers(error);
LogMessage(error.Message, (ERROR_LEVEL)error.ErrorLevel);
NotifyUsersAndClose(error);
}
private static void NotifyUsers(ErrorMessageModel error, bool beforeFormReady = false)
{
if (beforeFormReady)
{
MessageBox.Show(new Form { TopMost = true }, error.Message, error.Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageServices.Current.Publish(SEND_MESSAGE, null, error);
}
}
private static void NotifyUsersAndClose(ErrorMessageModel error, bool beforeFormReady = false)
{
if (beforeFormReady)
{
// Notify user
MessageBox.Show(error.Message, error.Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageServices.Current.Publish(SEND_STOP_THREADS);
MessageBox.Show(new Form { TopMost = true }, error.Message, error.Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageServices.Current.Publish(SEND_STOP_SERVER);
}
else
{
// Notify user
//MessageServices.Current.Publish(SEND_STOP_THREADS);
MessageServices.Current.Publish(SEND_MESSAGE, null, error);
}
}
+2 -2
View File
@@ -46,7 +46,7 @@ namespace Step.Utils
.ToDictionary(x => x.Name.ToString(), x => x.Value); // Populate dictionary
}
public static List<DTOLanguageModel> GetLanguageListFromDirectory()
public static List<DTOLanguageModel> GetLanguageListFromDirectory()
{
// Check if directory exists
if (Directory.Exists(LANGUAGE_PACK_DIRECTORY))
@@ -64,7 +64,7 @@ namespace Step.Utils
DTOLanguageModel language = new DTOLanguageModel() // Create language model
{
IsoId = info.TwoLetterISOLanguageName,
Name = info.NativeName
Name = char.ToUpper(info.NativeName[0]) + info.NativeName.Substring(1)
};
return language;
})
+10 -1
View File
@@ -88,13 +88,22 @@
<Content Include="docs\MySqlParameter.xml" />
<Content Include="docs\MySqlParameterCollection.xml" />
<Content Include="docs\MySqlTransaction.xml" />
<Content Include="languages\de.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="languages\en.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="languages\fr.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="languages\hr.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="languages\IT.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="languages\zh.xml">
<Content Include="languages\ro.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="NLog.config">
+42 -4
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Automatically generated by nicola.carminati: 2019-05-08 -->
<!-- Automatically generated by lucio.maranta: 2019-07-03 -->
<root>
<language_it>Italiano</language_it>
<header_maintainance_request>Effettuare manutenzione</header_maintainance_request>
@@ -54,6 +54,10 @@
<machineinfo_core_scm_version>Versione Core Maestro-Active:</machineinfo_core_scm_version>
<machineinfo_scm_client_version>Versione Client Maestro-Active:</machineinfo_scm_client_version>
<machineinfo_scm_dateformat>Formato delle date Maestro-Active:</machineinfo_scm_dateformat>
<contactinfo_lbl_title>Informazioni di contatto</contactinfo_lbl_title>
<contact_name>Nome contatto:</contact_name>
<contact_email>Email:</contact_email>
<contact_phoneNumber>Telefono:</contact_phoneNumber>
<head_label_rpm>Rpm</head_label_rpm>
<head_label_tool>Utensile</head_label_tool>
<head_label_load>Carico</head_label_load>
@@ -106,6 +110,7 @@
<hmi_cmd_fanuc_3>Ofst</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>Sys</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>Msg</hmi_cmd_fanuc_5>
<hmi_cmd_fanuc_6>Mgi</hmi_cmd_fanuc_6>
<tooling_title_label>Gestore Utensili</tooling_title_label>
<store_title_magazine>Magazzino</store_title_magazine>
<store_title_spindle>Mandrino</store_title_spindle>
@@ -137,7 +142,7 @@
<tooling_edgesdata_label_edit>Modifica Offset n. %d</tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_edit>Modifica Tagliente n. %d</siemens_tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_new>Creazione nuovo Tagliente</siemens_tooling_edgesdata_label_new>
<tooling_edgesdata_label_new>Associazionie nuovo Offset</tooling_edgesdata_label_new>
<tooling_edgesdata_label_new>Associazione nuovo Offset</tooling_edgesdata_label_new>
<tooling_shanks_label_box>Gestione Codoli</tooling_shanks_label_box>
<tooling_shanks_label_search>Seleziona un Codolo:</tooling_shanks_label_search>
<tooling_shanks_label_add>Crea un nuovo Codolo</tooling_shanks_label_add>
@@ -316,7 +321,7 @@
<tooling_family_param_gamma>Gamma Inverter</tooling_family_param_gamma>
<tooling_family_param_rotationType>Tipo rotazione</tooling_family_param_rotationType>
<tooling_family_param_tcpTable>Id Tabella-Tcp associata</tooling_family_param_tcpTable>
<tooling_family_param_maxSpeed>Velocità massima</tooling_family_param_maxSpeed>
<tooling_family_param_maxSpeed>Velocità massima</tooling_family_param_maxSpeed>
<tooling_family_param_maxLoad>Carico Massimo</tooling_family_param_maxLoad>
<tooling_family_param_minLoadPctAutoload>Carico Minimo</tooling_family_param_minLoadPctAutoload>
<tooling_family_param_maxLoadPctAutoload>Carico Massimo</tooling_family_param_maxLoadPctAutoload>
@@ -328,6 +333,7 @@
<tooling_family_param_reviveDelta>Δ Ravvivatura ut.</tooling_family_param_reviveDelta>
<siemens_tooling_equipment_cedgepar_id>Id Tagliente</siemens_tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_id>Id Offset</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_unitOfMeasure>Unità di misura</tooling_equipment_cedgepar_unitOfMeasure>
<tooling_equipment_cedgepar_residualLife>Vita Residua</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>Vita Nominale</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>Limite di Pre-Allarme</tooling_equipment_cedgepar_preAlmLife>
@@ -372,10 +378,13 @@
<tooling_equipment_cedgepar_corrAngle>Angolo di Correzione</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Lunghezza Braccio</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>Raggio Sfera</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_cedgepar_realRadius>Raggio Reale</tooling_equipment_cedgepar_realRadius>
<tooling_equipment_cedgepar_realLength>Lunghezza Reale</tooling_equipment_cedgepar_realLength>
<tooling_equipment_list_select_none>Nessuna selezione</tooling_equipment_list_select_none>
<tooling_equipment_list_select_generic>Generico</tooling_equipment_list_select_generic>
<tooling_equipment_list_select_timeLife>A Tempo</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>A Contatore</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_distanceLife>A Distanza</tooling_equipment_list_select_distanceLife>
<tooling_equipment_list_select_wearLife>Ad Usura</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Rot. Oraria</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Rot. Antioraria</tooling_equipment_list_select_counterClockWhise>
@@ -445,6 +454,26 @@
<tooling_equipment_list_select_radioProbe2.2>Radio Probe 2 - Ricevitore 2</tooling_equipment_list_select_radioProbe2.2>
<tooling_equipment_list_select_radioProbe2.3>Radio Probe 3 - Ricevitore 2</tooling_equipment_list_select_radioProbe2.3>
<tooling_equipment_list_select_radioProbe2.4>Radio Probe 4 - Ricevitore 2</tooling_equipment_list_select_radioProbe2.4>
<tooling_equipment_list_select_diskUltrasound10>Disco ultrasuoni amplitude 10%%</tooling_equipment_list_select_diskUltrasound10>
<tooling_equipment_list_select_diskUltrasound20>Disco ultrasuoni amplitude 20%%</tooling_equipment_list_select_diskUltrasound20>
<tooling_equipment_list_select_diskUltrasound30>Disco ultrasuoni amplitude 30%%</tooling_equipment_list_select_diskUltrasound30>
<tooling_equipment_list_select_diskUltrasound40>Disco ultrasuoni amplitude 40%%</tooling_equipment_list_select_diskUltrasound40>
<tooling_equipment_list_select_diskUltrasound50>Disco ultrasuoni amplitude 50%%</tooling_equipment_list_select_diskUltrasound50>
<tooling_equipment_list_select_diskUltrasound60>Disco ultrasuoni amplitude 60%%</tooling_equipment_list_select_diskUltrasound60>
<tooling_equipment_list_select_diskUltrasound70>Disco ultrasuoni amplitude 70%%</tooling_equipment_list_select_diskUltrasound70>
<tooling_equipment_list_select_diskUltrasound80>Disco ultrasuoni amplitude 80%%</tooling_equipment_list_select_diskUltrasound80>
<tooling_equipment_list_select_diskUltrasound90>Disco ultrasuoni amplitude 90%%</tooling_equipment_list_select_diskUltrasound90>
<tooling_equipment_list_select_diskUltrasound100>Disco ultrasuoni amplitude 100%%</tooling_equipment_list_select_diskUltrasound100>
<tooling_equipment_list_select_bladeUltrasound10>Lama ultrasuoni amplitude 10%%</tooling_equipment_list_select_bladeUltrasound10>
<tooling_equipment_list_select_bladeUltrasound20>Lama ultrasuoni amplitude 20%%</tooling_equipment_list_select_bladeUltrasound20>
<tooling_equipment_list_select_bladeUltrasound30>Lama ultrasuoni amplitude 30%%</tooling_equipment_list_select_bladeUltrasound30>
<tooling_equipment_list_select_bladeUltrasound40>Lama ultrasuoni amplitude 40%%</tooling_equipment_list_select_bladeUltrasound40>
<tooling_equipment_list_select_bladeUltrasound50>Lama ultrasuoni amplitude 50%%</tooling_equipment_list_select_bladeUltrasound50>
<tooling_equipment_list_select_bladeUltrasound60>Lama ultrasuoni amplitude 60%%</tooling_equipment_list_select_bladeUltrasound60>
<tooling_equipment_list_select_bladeUltrasound70>Lama ultrasuoni amplitude 70%%</tooling_equipment_list_select_bladeUltrasound70>
<tooling_equipment_list_select_bladeUltrasound80>Lama ultrasuoni amplitude 80%%</tooling_equipment_list_select_bladeUltrasound80>
<tooling_equipment_list_select_bladeUltrasound90>Lama ultrasuoni amplitude 90%%</tooling_equipment_list_select_bladeUltrasound90>
<tooling_equipment_list_select_bladeUltrasound100>Lama ultrasuoni amplitude 100%%</tooling_equipment_list_select_bladeUltrasound100>
<modal_confirm_title>Richiesta di conferma</modal_confirm_title>
<modal_ok_button>Ok</modal_ok_button>
<modal_cancel_button>Annulla</modal_cancel_button>
@@ -457,6 +486,7 @@
<siemens_modal_confirm_delete_shank>Sei sicuro di voler cancellare il multitool?</siemens_modal_confirm_delete_shank>
<modal_confirm_delete_tool_inshank>Sei sicuro di voler scaricare l&#39;utensile dal codolo?</modal_confirm_delete_tool_inshank>
<siemens_modal_confirm_delete_tool_inshank>Sei sicuro di voler scaricare l&#39;utensile dal multitool?</siemens_modal_confirm_delete_tool_inshank>
<modal_confirm_delete_alarms>Sei sicuro di voler cancellare tutti gli allarmi?</modal_confirm_delete_alarms>
<modal_confirm_perform_maintenance>Sei sicuro di aver eseguito questa manutenzione?</modal_confirm_perform_maintenance>
<modal_confirm_delete_family>Sei sicuro di voler cancellare la famiglia?</modal_confirm_delete_family>
<maintenance_header_title>Gestore Manutenzioni</maintenance_header_title>
@@ -512,16 +542,24 @@
<production_box_video_button_cnc>NC</production_box_video_button_cnc>
<production_box_video_button_prod>Prod</production_box_video_button_prod>
<production_softkeys_prefered_header_title>Softkey Preferite</production_softkeys_prefered_header_title>
<card_axes_production_axes_tab_interp>Interp.</card_axes_production_axes_tab_interp>
<card_axes_production_axes_tab_om>Absol.</card_axes_production_axes_tab_om>
<card_axes_production_axes_tab_goto>To-Go</card_axes_production_axes_tab_goto>
<card_axes_production_axes_tab_prog>Prog.</card_axes_production_axes_tab_prog>
<card_production_rapid>Rapid:</card_production_rapid>
<card_production_work>Work:</card_production_work>
<card_job_production_offset_length>Lunghezza reale:</card_job_production_offset_length>
<card_job_production_offset_radius>Raggio reale:</card_job_production_offset_radius>
<card_job_production_offset_diameter>Diametro Reale:</card_job_production_offset_diameter>
<card_job_production_origin>Origine attiva:</card_job_production_origin>
<card_job_production_offset>Correttore attivo:</card_job_production_offset>
<siemens_card_job_production_offset>Tagliente attivo:</siemens_card_job_production_offset>
<card_job_production_iso_lines>Linee iso:</card_job_production_iso_lines>
<card_job_production_message>Messaggio:</card_job_production_message>
<production_label_select_prg>Seleziona un programma</production_label_select_prg>
<production_label_select_auto_mode>Seleziona la modalità Auto per eseguire un programma</production_label_select_auto_mode>
<production_label_select_auto_mode>Seleziona la modalità Auto per eseguire un programma</production_label_select_auto_mode>
<production_softkeys_prefered_sel_in_progr>Selezione in corso</production_softkeys_prefered_sel_in_progr>
<button_production_go_to_selection>Vai alla selezione</button_production_go_to_selection>
<modal_load_program_lbl_title_window>Program-Loader</modal_load_program_lbl_title_window>
<modal_load_program_lbl_box_select_program>Seleziona un programma</modal_load_program_lbl_box_select_program>
<modal_load_program_btn_upload_program>Carica e attiva</modal_load_program_btn_upload_program>
+663
View File
@@ -0,0 +1,663 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Automatically generated by lucio.maranta: 2019-07-03 -->
<root>
<language_it>Deutsch</language_it>
<header_maintainance_request>Wartung ausführen</header_maintainance_request>
<support_summary>Fälligkeit:</support_summary>
<header_maintainance_request_explanation>Eine Prozedur muss ausgeführt werden</header_maintainance_request_explanation>
<alarm_ribbon_title_more_items>%d Alarme sind aktiv</alarm_ribbon_title_more_items>
<warning_ribbon_title_more_items>%d Warnungen sind aktiv</warning_ribbon_title_more_items>
<process_label_name>Prozess</process_label_name>
<userinfo_lbl_title>Benutzereinstellungen</userinfo_lbl_title>
<userinfo_btn_logout>Abmelden</userinfo_btn_logout>
<userinfo_lbl_language>Sprache</userinfo_lbl_language>
<userinfo_btn_cancel>Abbrechen</userinfo_btn_cancel>
<userinfo_btn_save>Speichern</userinfo_btn_save>
<login_lbl_title>Benutzeranmeldung</login_lbl_title>
<login_lbl_username>Benutzername</login_lbl_username>
<login_lbl_password>Passwort</login_lbl_password>
<login_btn_login>Anmelden</login_btn_login>
<login_lbl_invalidusername>Benutzername falsch</login_lbl_invalidusername>
<login_lbl_invalidpassword>Passwort falsch</login_lbl_invalidpassword>
<alarms_btn_history_show>Siehe Alarmhistorie</alarms_btn_history_show>
<alarms_refresh_all>Alle aktualisieren</alarms_refresh_all>
<alarm_item_btn_show>Siehe</alarm_item_btn_show>
<alarm_ribbon_title_1_item>Alarm</alarm_ribbon_title_1_item>
<warning_ribbon_title_1_item>Warnung</warning_ribbon_title_1_item>
<alarm_detail_lbl_status>Status</alarm_detail_lbl_status>
<alarm_manual_lbl_title>Wiederherstellungsprozedur</alarm_manual_lbl_title>
<alarm_manual_lbl_description>Behebung des Alarms</alarm_manual_lbl_description>
<alarm_manual_btn_start>Starten</alarm_manual_btn_start>
<alarm_detail_btn_show_manual>Siehe Anleitung</alarm_detail_btn_show_manual>
<alarm_detail_btn_ask_help>Hilfe anfordern</alarm_detail_btn_ask_help>
<alarm_detail_btn_refresh>Aktualisieren</alarm_detail_btn_refresh>
<alarm_btn_back_to_list>Zur Liste zurückkehren</alarm_btn_back_to_list>
<alarm_status_active>Aktiv</alarm_status_active>
<alarm_status_deleted>Gelöscht</alarm_status_deleted>
<alarm_btn_add_attach>Eine Anlage hinzufügen</alarm_btn_add_attach>
<machineinfo_lbl_title>Maschineninformationen</machineinfo_lbl_title>
<machine_serial_number>Seriennummer:</machine_serial_number>
<machine_installation_date>Installationsdatum:</machine_installation_date>
<machineinfo_model_nc>CN-Modell:</machineinfo_model_nc>
<machineinfo_serial_nc>Serien- CN-Nr.:</machineinfo_serial_nc>
<machineinfo_firmware_version>CN-Firmware-Version:</machineinfo_firmware_version>
<machineinfo_plc_version>SPS-Version:</machineinfo_plc_version>
<machineinfo_current_language>Ausgewählte CN-Sprache:</machineinfo_current_language>
<machineinfo_processes>Anzahl der CN-Prozesse:</machineinfo_processes>
<machineinfo_datetime>CN-Zeitstempel:</machineinfo_datetime>
<machineinfo_umeas>Cn-Maßeinheit:</machineinfo_umeas>
<machineinfo_server_cms_version>Version Server CMS-Active:</machineinfo_server_cms_version>
<machineinfo_core_cms_version>Version Core CMS-Active:</machineinfo_core_cms_version>
<machineinfo_cms_client_version>Version Client CMS-Active:</machineinfo_cms_client_version>
<machineinfo_cms_dateformat>Datenformat CMS-Active:</machineinfo_cms_dateformat>
<machineinfo_server_scm_version>Version Server Maestro-Active:</machineinfo_server_scm_version>
<machineinfo_core_scm_version>Version Core Maestro-Active:</machineinfo_core_scm_version>
<machineinfo_scm_client_version>Version Client Maestro-Active:</machineinfo_scm_client_version>
<machineinfo_scm_dateformat>Datenformat Maestro-Active:</machineinfo_scm_dateformat>
<contactinfo_lbl_title>Kontaktinformation</contactinfo_lbl_title>
<contact_name>Kontaktname:</contact_name>
<contact_email>Email:</contact_email>
<contact_phoneNumber>Telefonnummer:</contact_phoneNumber>
<head_label_rpm>1/min</head_label_rpm>
<head_label_tool>Werkzeug</head_label_tool>
<head_label_load>Last</head_label_load>
<head_label_pressure>MPa</head_label_pressure>
<head_label_abrasive>Schleifmittel</head_label_abrasive>
<head_label_gmin>1/min</head_label_gmin>
<head_label_vacuum>Leer</head_label_vacuum>
<head_label_bar>bar</head_label_bar>
<head_label_feed>Geschwindigkeit</head_label_feed>
<jog_menu_axis>Achse:</jog_menu_axis>
<jog_menu_inc>Inkr:</jog_menu_inc>
<sfk_category_1>Generische Softkeys</sfk_category_1>
<sfk_category_2>Blockierungen / Vakuumbereiche</sfk_category_2>
<sfk_category_3>Aggregate / Kühlgeräte</sfk_category_3>
<sfk_category_4>Betriebsmodi</sfk_category_4>
<sfk_category_5>Starten von Prozeduren / Benutzerprogramme</sfk_category_5>
<sfk_category_6>Ausrüstung und Schutzeinrichtungen</sfk_category_6>
<sfk_category_7>Beladen / Entladen</sfk_category_7>
<softkey_confirm>Sind Sie sicher?</softkey_confirm>
<confirm_request_confirm>Bestätigen</confirm_request_confirm>
<confirm_request_cancel>Abbrechen</confirm_request_cancel>
<plc_softkeys_item_selected>ausgewählte Elemente</plc_softkeys_item_selected>
<plc_softkeys_close_selection>Auswahl beenden</plc_softkeys_close_selection>
<modal_m155_hide_window>Fenster ausblenden</modal_m155_hide_window>
<modal_m155_title>Meldung vom Prozess %d</modal_m155_title>
<modal_m155_value>Wert:</modal_m155_value>
<utilities_header_label>Dienstprogramm &#38; Externe Software</utilities_header_label>
<modal_nochangepage_title>Vorgang nicht möglich</modal_nochangepage_title>
<modal_nochangepage_message>Erst alle offenen Vorgänge beenden, bevor andere Anwendungen gestartet werden.</modal_nochangepage_message>
<modal_confirm_close_application>Soll Active wirklich geschlossen werden?</modal_confirm_close_application>
<modal_nocloseapp_title>Vorgang nicht möglich</modal_nocloseapp_title>
<modal_nocloseapp_message>Erst alle offenen Vorgänge beenden, bevor Active geschlossen wird.</modal_nocloseapp_message>
<hmi_cmd_demo_1>NC-Daten</hmi_cmd_demo_1>
<hmi_cmd_demo_2>NC-Prozesse</hmi_cmd_demo_2>
<hmi_cmd_demo_3>Alarme</hmi_cmd_demo_3>
<hmi_cmd_demo_4>Achsen</hmi_cmd_demo_4>
<hmi_cmd_demo_5>Byte-Speicher</hmi_cmd_demo_5>
<hmi_cmd_demo_6>Programme</hmi_cmd_demo_6>
<hmi_cmd_demo_7>Magazine</hmi_cmd_demo_7>
<hmi_cmd_demo_8>Familie / Schäfte</hmi_cmd_demo_8>
<hmi_cmd_demo_9>Werkzeuge</hmi_cmd_demo_9>
<hmi_cmd_siemens_1>Maschine</hmi_cmd_siemens_1>
<hmi_cmd_siemens_2>Parameter</hmi_cmd_siemens_2>
<hmi_cmd_siemens_3>Programm</hmi_cmd_siemens_3>
<hmi_cmd_siemens_4>Prog. Manager</hmi_cmd_siemens_4>
<hmi_cmd_siemens_5>Diagnostik</hmi_cmd_siemens_5>
<hmi_cmd_siemens_6>Inbetriebnahme</hmi_cmd_siemens_6>
<hmi_cmd_fanuc_1>Pos</hmi_cmd_fanuc_1>
<hmi_cmd_fanuc_2>Prog</hmi_cmd_fanuc_2>
<hmi_cmd_fanuc_3>Offset</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>Sys</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>Msg</hmi_cmd_fanuc_5>
<hmi_cmd_fanuc_6>Mgi</hmi_cmd_fanuc_6>
<tooling_title_label>Werkzeugverwaltung</tooling_title_label>
<store_title_magazine>Magazin</store_title_magazine>
<store_title_spindle>Spindel</store_title_spindle>
<launch_tools>Werkzeuge</launch_tools>
<launch_shanks>Schäfte</launch_shanks>
<siemens_launch_shanks>Multiwerkzeuge</siemens_launch_shanks>
<launch_hands>Halterungskonfiguration</launch_hands>
<launch_families>Familien</launch_families>
<siemens_launch_families>Werkzeuggruppen</siemens_launch_families>
<tooling_equipment_label_box>Werkzeugverwaltung</tooling_equipment_label_box>
<tooling_magazine_label>Magazinausrüstung:</tooling_magazine_label>
<tooling_magazine_selfadaptivepath_step>Schritt selbstadaptiver Pfad</tooling_magazine_selfadaptivepath_step>
<tooling_magazine_export_label>Werkzeuge exportieren</tooling_magazine_export_label>
<tooling_magazine_import_label>Werkzeuge Importieren</tooling_magazine_import_label>
<tooling_tables_label>Werkzeuge &#38; Konfigurationen:</tooling_tables_label>
<tooling_equipment_label_search>Werkzeug auswählen:</tooling_equipment_label_search>
<tooling_equipment_label_add>Neues Werkzeug erzeugen</tooling_equipment_label_add>
<tooling_equipment_button_modify>Ändern</tooling_equipment_button_modify>
<tooling_equipment_button_cancel>Abbrechen</tooling_equipment_button_cancel>
<tooling_equipment_button_save>Speichern</tooling_equipment_button_save>
<tooling_equipment_button_add>Hinzufügen</tooling_equipment_button_add>
<tooling_edgesdataequip_skill_tools>Offset</tooling_edgesdataequip_skill_tools>
<siemens_tooling_edgesdataequip_skill_tools>Schneide</siemens_tooling_edgesdataequip_skill_tools>
<tooling_edgesdataequip_new>Neues Offset</tooling_edgesdataequip_new>
<siemens_tooling_edgesdataequip_new>Neue Schneide</siemens_tooling_edgesdataequip_new>
<tooling_parameters_tab>Parameter</tooling_parameters_tab>
<tooling_equipment_editlabel>Werkzeug Nr. %d ändern</tooling_equipment_editlabel>
<tooling_equipment_newlabel>Erzeugung eines neuen Werkzeugs</tooling_equipment_newlabel>
<tooling_edgesdata_label_edit>Offset Nr. %d ändern</tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_edit>Schneide Nr. %d ändern</siemens_tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_new>Erzeugung einer neuen Schneide</siemens_tooling_edgesdata_label_new>
<tooling_edgesdata_label_new>Vereinigung neues Offset</tooling_edgesdata_label_new>
<tooling_shanks_label_box>Schaftverwaltung</tooling_shanks_label_box>
<tooling_shanks_label_search>Schaft wählen:</tooling_shanks_label_search>
<tooling_shanks_label_add>Neuen Schaft erzeugen</tooling_shanks_label_add>
<tooling_shanks_name>Schaft %d</tooling_shanks_name>
<siemens_tooling_shanks_label_box>Verwaltung Multitool</siemens_tooling_shanks_label_box>
<siemens_tooling_shanks_label_search>Multitool auswählen:</siemens_tooling_shanks_label_search>
<siemens_tooling_shanks_label_add>Neues Multitool erzeugen</siemens_tooling_shanks_label_add>
<siemens_tooling_shanks_name>Multitool %d</siemens_tooling_shanks_name>
<tooling_childtoolsshanks_skill_tools>Werkzeug %d</tooling_childtoolsshanks_skill_tools>
<tooling_childtoolsshanks_new>Neues Werkzeug</tooling_childtoolsshanks_new>
<tooling_shanks_editlabel>Schaft Nr. %d ändern</tooling_shanks_editlabel>
<siemens_tooling_shanks_editlabel>Multitool Nr. %d ändern</siemens_tooling_shanks_editlabel>
<tooling_childtoolsshank_select_tool>Das zum Schaft hinzuzufügende Werkzeug wählen</tooling_childtoolsshank_select_tool>
<siemens_tooling_childtoolsshank_select_tool>Das zum Multitool hinzuzufügende Werkzeug wählen</siemens_tooling_childtoolsshank_select_tool>
<tooling_shanks_label_new>Erzeugung eines neuen Schafts</tooling_shanks_label_new>
<siemens_tooling_shanks_label_new>Erzeugung eines neuen Multitools</siemens_tooling_shanks_label_new>
<tooling_shanks_edittoollabel>Werkzeug %d des Schafts %d ändern</tooling_shanks_edittoollabel>
<siemens_tooling_shanks_edittoollabel>Werkzeug %d des Multitools %d ändern</siemens_tooling_shanks_edittoollabel>
<tooling_magpos_label_box>Verwaltung Magazinhalterungen</tooling_magpos_label_box>
<tooling_magpos_label_search>Eine Halterung auswählen:</tooling_magpos_label_search>
<tooling_magpos>Pos</tooling_magpos>
<tooling_magazine>Magazin</tooling_magazine>
<tooling_magpos_editlabel>Position Nr. %d des Magazins %s ändern</tooling_magpos_editlabel>
<tooling_families_label_box>Familienverwaltung</tooling_families_label_box>
<siemens_tooling_families_label_box>Verwaltung-Werkzeuggruppen</siemens_tooling_families_label_box>
<tooling_families_label_search>Eine Familie auswählen:</tooling_families_label_search>
<siemens_tooling_families_label_search>Eine Gruppe auswählen:</siemens_tooling_families_label_search>
<tooling_families_boxright_editlabel>Familie %s ändern</tooling_families_boxright_editlabel>
<tooling_families_boxright_newlabel>Erzeugung einer neuen Familie</tooling_families_boxright_newlabel>
<siemens_tooling_families_boxright_editlabel>Gruppe %s ändern</siemens_tooling_families_boxright_editlabel>
<siemens_tooling_families_boxright_newlabel>Erzeugung einer neuen Gruppe</siemens_tooling_families_boxright_newlabel>
<tooling_childtoolsfamily_skill_tools>Werkzeug %d</tooling_childtoolsfamily_skill_tools>
<siemens_tooling_childtoolsfamily_skill_tools>Duplo %d</siemens_tooling_childtoolsfamily_skill_tools>
<tooling_childtoolsfamily_boxright_editlabel>Werkzeug %d der Familie %s ändern</tooling_childtoolsfamily_boxright_editlabel>
<siemens_tooling_childtoolsfamily_boxright_editlabel>Werkzeug %d der Gruppe %s ändern</siemens_tooling_childtoolsfamily_boxright_editlabel>
<tooling_equipment_search_placeholder>Ein Werkzeug mit ID suchen</tooling_equipment_search_placeholder>
<siemens_tooling_equipment_search_placeholder>Ein Werkzeug mit Namen suchen</siemens_tooling_equipment_search_placeholder>
<tooling_shank_search_placeholder>Einen Schaft mit ID suchen</tooling_shank_search_placeholder>
<siemens_tooling_shank_search_placeholder>Ein Multitool mit Namen suchen</siemens_tooling_shank_search_placeholder>
<tooling_magpos_search_placeholder>Eine Halterung mit ID suchen</tooling_magpos_search_placeholder>
<tooling_families_search_placeholder>Eine Familie mit Namen suchen</tooling_families_search_placeholder>
<siemens_tooling_families_search_placeholder>Eine Werkzeuggruppe mit Namen suchen</siemens_tooling_families_search_placeholder>
<tooling_magazine_abbreviation>MA%d</tooling_magazine_abbreviation>
<tooling_shank_abbreviation>S%d</tooling_shank_abbreviation>
<tooling_tool_abbreviation>T%d</tooling_tool_abbreviation>
<siemens_tooling_tool_abbreviation>ST%d</siemens_tooling_tool_abbreviation>
<siemens_tooling_shank_abbreviation>M%d</siemens_tooling_shank_abbreviation>
<tooling_family_abbreviation>F%d</tooling_family_abbreviation>
<tooling_magpos_abbreviation>P%d</tooling_magpos_abbreviation>
<depot_button_cancel>Änderungen beenden</depot_button_cancel>
<depot_button_modify>Ändern</depot_button_modify>
<depot_checkbox_viewstate_equipment>Werkzeugstatus anzeigen</depot_checkbox_viewstate_equipment>
<depot_label_search>Ein Werkzeug auswählen und es zur entsprechenden Position ziehen.</depot_label_search>
<depot_search_placeholder>Ein Werkzeug mit Namen suchen</depot_search_placeholder>
<depot_avaiable_position>Verfügbare Position</depot_avaiable_position>
<load_depot_lbl_title>Werkzeug laden</load_depot_lbl_title>
<load_depot_lbl_select>Ein Werkzeug zum Laden auswählen</load_depot_lbl_select>
<load_depot_select_title>Werkzeug</load_depot_select_title>
<load_depot_btn_cancel>Abbrechen</load_depot_btn_cancel>
<load_depot_btn_confirm>Laden</load_depot_btn_confirm>
<toolinginfo_edit_button>Werkzeug ändern</toolinginfo_edit_button>
<toolinginfo_explain_lbl>Zum Ändern des Werkzeugs das Ausrüsten des Magazins beenden</toolinginfo_explain_lbl>
<modal_add_offset_tool_position>Position</modal_add_offset_tool_position>
<modal_add_offset_tool_id>Offset-ID</modal_add_offset_tool_id>
<modal_add_offset_tool_abbreviation>Offset %d</modal_add_offset_tool_abbreviation>
<tooling_families_label_add>Eine neue Familie erzeugen</tooling_families_label_add>
<load_depot_error_fit>Zu wenig Platz, um dieses Werkzeug zu laden</load_depot_error_fit>
<depot_action_loading_header>Laden Werkzeug</depot_action_loading_header>
<depot_action_unloading_header>Entladen Werkzeug</depot_action_unloading_header>
<depot_action_transfer_header>Transfer Werkzeug</depot_action_transfer_header>
<depot_action_generic_header>Werkzeugverwaltung beschäftigt</depot_action_generic_header>
<depot_action_generic_text>Ein Vorgang blockiert die Werkzeugverwaltung...</depot_action_generic_text>
<depot_action_magazine_label>Magazin %d</depot_action_magazine_label>
<depot_action_magazine_position>Pos. %d</depot_action_magazine_position>
<tooling_equipment_list_category_general>Allg. Param.:</tooling_equipment_list_category_general>
<siemens_tooling_equipment_list_category_family>Gruppe - Werkzeuge:</siemens_tooling_equipment_list_category_family>
<tooling_equipment_list_category_family>Familie:</tooling_equipment_list_category_family>
<tooling_equipment_list_category_state>Werkzeugstatus:</tooling_equipment_list_category_state>
<tooling_equipment_list_category_cooling>Kältemittel:</tooling_equipment_list_category_cooling>
<tooling_equipment_list_category_magazine>Magazin:</tooling_equipment_list_category_magazine>
<tooling_equipment_list_category_head>Spindel:</tooling_equipment_list_category_head>
<tooling_equipment_list_category_life>Lebensdauer:</tooling_equipment_list_category_life>
<tooling_equipment_list_category_geometry>Geometrie:</tooling_equipment_list_category_geometry>
<tooling_shanks_list_category_general>Allg. Param.:</tooling_shanks_list_category_general>
<tooling_shanks_list_category_state>Status Schaft:</tooling_shanks_list_category_state>
<siemens_tooling_shanks_list_category_state>Status Multitool:</siemens_tooling_shanks_list_category_state>
<tooling_shanks_list_category_magazine>Magazin:</tooling_shanks_list_category_magazine>
<tooling_magpos_list_category_general>Allg. Param.:</tooling_magpos_list_category_general>
<tooling_families_list_category_general>Allg. Param.:</tooling_families_list_category_general>
<tooling_families_list_category_gamma>Inverter Palette:</tooling_families_list_category_gamma>
<tooling_families_list_category_magazine>Magazin:</tooling_families_list_category_magazine>
<tooling_equipment_list_category_status>Status Werkzeug:</tooling_equipment_list_category_status>
<tooling_equipment_list_category_offset>Offset:</tooling_equipment_list_category_offset>
<tooling_shanks_list_category_balluf>RFID:</tooling_shanks_list_category_balluf>
<tooling_shanks_list_category_magPosType>Art der gewünschten Position:</tooling_shanks_list_category_magPosType>
<tooling_shanks_list_category_position>Position:</tooling_shanks_list_category_position>
<tooling_families_list_category_dynamicCompensation>Dynamische Kompensation:</tooling_families_list_category_dynamicCompensation>
<tooling_families_list_category_tcp>TCP-Tabelle:</tooling_families_list_category_tcp>
<tooling_families_list_category_cooling>Kältemittel:</tooling_families_list_category_cooling>
<tooling_families_list_category_limits>Grenzen:</tooling_families_list_category_limits>
<tooling_families_list_category_selfAdaptive>Selbstadaptiver Weg:</tooling_families_list_category_selfAdaptive>
<tooling_families_list_category_life>Lebensdauer:</tooling_families_list_category_life>
<tooling_families_list_category_revive>Abrichtung:</tooling_families_list_category_revive>
<tooling_equipment_list_category_limits>Grenzen:</tooling_equipment_list_category_limits>
<tooling_equipment_list_category_revive>Abrichtung:</tooling_equipment_list_category_revive>
<tooling_equipment_list_category_dynamicCompensation>Dynamische Kompensation:</tooling_equipment_list_category_dynamicCompensation>
<tooling_equipment_list_category_tcp>TCP-Tabelle:</tooling_equipment_list_category_tcp>
<tooling_equipment_list_category_selfAdaptive>Selbstadaptiver Weg:</tooling_equipment_list_category_selfAdaptive>
<tooling_equipment_param_id>Werk.-ID</tooling_equipment_param_id>
<tooling_equipment_param_toolType>Werk.-Art</tooling_equipment_param_toolType>
<tooling_equipment_param_lifeType>Art Lebensdauer</tooling_equipment_param_lifeType>
<tooling_equipment_param_familyName>Name</tooling_equipment_param_familyName>
<tooling_equipment_param_name>Name</tooling_equipment_param_name>
<tooling_equipment_param_childId>ID Sohn</tooling_equipment_param_childId>
<tooling_equipment_param_multitoolId>Multitool Id</tooling_equipment_param_multitoolId>
<tooling_equipment_param_isEnabled>Werkz. Zugelassen</tooling_equipment_param_isEnabled>
<tooling_equipment_param_isActive>Werkz. Aktiv</tooling_equipment_param_isActive>
<tooling_equipment_param_isInhibited>Werkz. Gesperrt</tooling_equipment_param_isInhibited>
<tooling_equipment_param_inFixedPlace>Werkz. in fester Pos.</tooling_equipment_param_inFixedPlace>
<tooling_equipment_param_isMeasured>Werkz. Gemessen</tooling_equipment_param_isMeasured>
<tooling_equipment_param_inChangeTool>Werkzeug im Werkzeugwechsel</tooling_equipment_param_inChangeTool>
<tooling_equipment_param_isInUse>Werkz. in Gebrauch</tooling_equipment_param_isInUse>
<tooling_equipment_param_preAlarm>Werkz. in Voralarm</tooling_equipment_param_preAlarm>
<tooling_equipment_param_cooling>Hauptkühlung</tooling_equipment_param_cooling>
<tooling_equipment_param_cooling1>Kühlung 1</tooling_equipment_param_cooling1>
<tooling_equipment_param_cooling2>Kühlung 2</tooling_equipment_param_cooling2>
<tooling_equipment_param_cooling3>Kühlung 3</tooling_equipment_param_cooling3>
<tooling_equipment_param_cooling4>Kühlung 4</tooling_equipment_param_cooling4>
<tooling_equipment_param_cooling5>Kühlung 5</tooling_equipment_param_cooling5>
<tooling_equipment_param_cooling6>Kühlung 6</tooling_equipment_param_cooling6>
<tooling_equipment_param_cooling7>Kühlung 7</tooling_equipment_param_cooling7>
<tooling_equipment_param_magazinePositionType>Halterungsart</tooling_equipment_param_magazinePositionType>
<tooling_equipment_param_leftSize>Abmessung links</tooling_equipment_param_leftSize>
<tooling_equipment_param_rightSize>Abmessung rechts</tooling_equipment_param_rightSize>
<tooling_equipment_param_rotation>Art Drehung</tooling_equipment_param_rotation>
<tooling_equipment_param_maxSpeed>Maximalgeschwindigkeit</tooling_equipment_param_maxSpeed>
<tooling_equipment_param_maxAcceleration>Maximalbeschleunigung</tooling_equipment_param_maxAcceleration>
<tooling_equipment_param_magpos_magazineId>Mag.-ID</tooling_equipment_param_magpos_magazineId>
<tooling_equipment_param_magpos_positionId>Position</tooling_equipment_param_magpos_positionId>
<tooling_equipment_param_magpos_type>Art</tooling_equipment_param_magpos_type>
<tooling_equipment_param_magpos_physicalType>Mech. Art</tooling_equipment_param_magpos_physicalType>
<tooling_equipment_param_magpos_disabled>Deaktiviert</tooling_equipment_param_magpos_disabled>
<tooling_equipment_param_position>Position</tooling_equipment_param_position>
<tooling_equipment_param_shankId>Schaft-ID</tooling_equipment_param_shankId>
<tooling_equipment_param_familyId>Familien-ID</tooling_equipment_param_familyId>
<tooling_equipment_param_offsetLength>Offset Länge</tooling_equipment_param_offsetLength>
<tooling_equipment_param_residualLife>Restlebensdauer</tooling_equipment_param_residualLife>
<tooling_equipment_param_disabled>Werk. deaktiviert</tooling_equipment_param_disabled>
<tooling_equipment_param_broken>Werk. gestört</tooling_equipment_param_broken>
<tooling_equipment_param_measured>Werk. gemessen</tooling_equipment_param_measured>
<tooling_equipment_param_clockwiseRotation>Drehung im Uhrzeigersinn</tooling_equipment_param_clockwiseRotation>
<tooling_equipment_param_counterClockwiseRotation>Drehung gegen den Uhrzeigersinn</tooling_equipment_param_counterClockwiseRotation>
<tooling_equipment_param_offsetId1>Offset-ID 1</tooling_equipment_param_offsetId1>
<tooling_equipment_param_offsetId2>Offset-ID 2</tooling_equipment_param_offsetId2>
<tooling_equipment_param_offsetId3>Offset-ID 3</tooling_equipment_param_offsetId3>
<tooling_equipment_param_tcpTable>ID Tabelle - zugeordnete TCP</tooling_equipment_param_tcpTable>
<tooling_equipment_param_gamma>Inverter Palette</tooling_equipment_param_gamma>
<tooling_equipment_param_rotationType>Art Drehung</tooling_equipment_param_rotationType>
<tooling_equipment_param_maxLoad>Mögliche Maximallast</tooling_equipment_param_maxLoad>
<tooling_equipment_param_minLoadPctAutoload>Last-Min. selbstadaptiver Weg</tooling_equipment_param_minLoadPctAutoload>
<tooling_equipment_param_maxLoadPctAutoload>Last-Max. selbstadaptiver Weg</tooling_equipment_param_maxLoadPctAutoload>
<tooling_equipment_param_dynamicCompensation>Dynamische Kompensation</tooling_equipment_param_dynamicCompensation>
<tooling_equipment_param_minLoadDynamicCompensation>Last-Min. dynamische Kompensation</tooling_equipment_param_minLoadDynamicCompensation>
<tooling_equipment_param_maxLoadDynamicCompensation>Last-Max. dynamische Kompensation</tooling_equipment_param_maxLoadDynamicCompensation>
<tooling_equipment_param_nominalLife>Nennlebensdauer</tooling_equipment_param_nominalLife>
<tooling_equipment_param_reviveDelta>Δ Abrichtung Werk.</tooling_equipment_param_reviveDelta>
<tooling_equipment_param_balluf>RFID Werkzeug-ID</tooling_equipment_param_balluf>
<tooling_equipment_param_magazineId>Magazin-ID</tooling_equipment_param_magazineId>
<tooling_equipment_param_positionId>Position</tooling_equipment_param_positionId>
<tooling_equipment_auto_checkbox>Auto</tooling_equipment_auto_checkbox>
<tooling_family_param_name>Name</tooling_family_param_name>
<tooling_family_param_id>Familien-ID</tooling_family_param_id>
<tooling_family_param_toolType>Werk.-Art</tooling_family_param_toolType>
<tooling_family_param_leftSize>Abmessung links</tooling_family_param_leftSize>
<tooling_family_param_rightSize>Abmessung rechts</tooling_family_param_rightSize>
<tooling_family_param_gamma>Inverter Palette</tooling_family_param_gamma>
<tooling_family_param_rotationType>Art Drehung</tooling_family_param_rotationType>
<tooling_family_param_tcpTable>ID Tabelle - zugeordnete TCP</tooling_family_param_tcpTable>
<tooling_family_param_maxSpeed>Maximalgeschwindigkeit</tooling_family_param_maxSpeed>
<tooling_family_param_maxLoad>Maximallast</tooling_family_param_maxLoad>
<tooling_family_param_minLoadPctAutoload>Minimallast</tooling_family_param_minLoadPctAutoload>
<tooling_family_param_maxLoadPctAutoload>Maximallast</tooling_family_param_maxLoadPctAutoload>
<tooling_family_param_dynamicCompensation>Verschleißkoeffizient Werkzeug</tooling_family_param_dynamicCompensation>
<tooling_family_param_minLoadDynamicCompensation>Minimallast</tooling_family_param_minLoadDynamicCompensation>
<tooling_family_param_maxLoadDynamicCompensation>Maximallast</tooling_family_param_maxLoadDynamicCompensation>
<tooling_family_param_lifeType>Art Lebensdauer</tooling_family_param_lifeType>
<tooling_family_param_nominalLife>Nennlebensdauer</tooling_family_param_nominalLife>
<tooling_family_param_reviveDelta>Δ Abrichtung Werk.</tooling_family_param_reviveDelta>
<siemens_tooling_equipment_cedgepar_id>Schneiden-ID</siemens_tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_id>Offset-ID</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_unitOfMeasure>Maßeinheit</tooling_equipment_cedgepar_unitOfMeasure>
<tooling_equipment_cedgepar_residualLife>Restlebensdauer</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>Nennlebensdauer</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>Grenzen des Voralarms</tooling_equipment_cedgepar_preAlmLife>
<tooling_equipment_cedgepar_cuttingEdge>Schneidenart</tooling_equipment_cedgepar_cuttingEdge>
<tooling_equipment_cedgepar_lenght>Länge</tooling_equipment_cedgepar_lenght>
<tooling_equipment_cedgepar_length>Länge</tooling_equipment_cedgepar_length>
<tooling_equipment_cedgepar_radius>Radius</tooling_equipment_cedgepar_radius>
<tooling_equipment_cedgepar_wearLenght>Verschleißlänge</tooling_equipment_cedgepar_wearLenght>
<tooling_equipment_cedgepar_wearLength>Verschleißlänge</tooling_equipment_cedgepar_wearLength>
<tooling_equipment_cedgepar_wearRadius>Verschleißradius</tooling_equipment_cedgepar_wearRadius>
<tooling_equipment_cedgepar_wearDiameter>Verschleißdurchmesser</tooling_equipment_cedgepar_wearDiameter>
<tooling_equipment_cedgepar_teeth>Zahnanz.</tooling_equipment_cedgepar_teeth>
<tooling_equipment_cedgepar_cornerRadius>Radius Winkelverbindung</tooling_equipment_cedgepar_cornerRadius>
<tooling_equipment_cedgepar_geomLenght1>Länge Geometrie Werk. 1</tooling_equipment_cedgepar_geomLenght1>
<tooling_equipment_cedgepar_geomLenght2>Länge Geometrie Werk. 2</tooling_equipment_cedgepar_geomLenght2>
<tooling_equipment_cedgepar_geomLenght3>Länge Geometrie Werk. 3</tooling_equipment_cedgepar_geomLenght3>
<tooling_equipment_cedgepar_geomDeltaLenght1>Δ Länge Werk. 1</tooling_equipment_cedgepar_geomDeltaLenght1>
<tooling_equipment_cedgepar_geomDeltaLenght2>Δ Länge Werk. 2</tooling_equipment_cedgepar_geomDeltaLenght2>
<tooling_equipment_cedgepar_geomDeltaLenght3>Δ Länge Werk. 3</tooling_equipment_cedgepar_geomDeltaLenght3>
<tooling_equipment_cedgepar_adapterLenght1>Länge Adapter 1</tooling_equipment_cedgepar_adapterLenght1>
<tooling_equipment_cedgepar_adapterLenght2>Länge Adapter 2</tooling_equipment_cedgepar_adapterLenght2>
<tooling_equipment_cedgepar_adapterLenght3>Länge Adapter 3</tooling_equipment_cedgepar_adapterLenght3>
<tooling_equipment_cedgepar_v>V</tooling_equipment_cedgepar_v>
<tooling_equipment_cedgepar_vector1>Vektor 1</tooling_equipment_cedgepar_vector1>
<tooling_equipment_cedgepar_vector2>Vektor 2</tooling_equipment_cedgepar_vector2>
<tooling_equipment_cedgepar_vector3>Vektor 3</tooling_equipment_cedgepar_vector3>
<tooling_equipment_cedgepar_outsideRadius>Außenradius</tooling_equipment_cedgepar_outsideRadius>
<tooling_equipment_cedgepar_ToolAngle>Werkzeugwinkel</tooling_equipment_cedgepar_ToolAngle>
<tooling_equipment_cedgepar_Width>Breite</tooling_equipment_cedgepar_Width>
<tooling_equipment_cedgepar_taperAngle>Kegelwinkel</tooling_equipment_cedgepar_taperAngle>
<tooling_equipment_cedgepar_tipAngle>Spitzenwinkel</tooling_equipment_cedgepar_tipAngle>
<tooling_equipment_cedgepar_pitch>Schritt</tooling_equipment_cedgepar_pitch>
<tooling_equipment_cedgepar_diameter>Durchmesser</tooling_equipment_cedgepar_diameter>
<tooling_equipment_cedgepar_geomSlotWidth>Rillenbreite</tooling_equipment_cedgepar_geomSlotWidth>
<tooling_equipment_cedgepar_geomPrjection>Überschuss</tooling_equipment_cedgepar_geomPrjection>
<tooling_equipment_cedgepar_geomWearLenght1>Verschleiß Länge 1</tooling_equipment_cedgepar_geomWearLenght1>
<tooling_equipment_cedgepar_geomWearLenght2>Verschleiß Länge 2</tooling_equipment_cedgepar_geomWearLenght2>
<tooling_equipment_cedgepar_geomWearLenght3>Verschleiß Länge 3</tooling_equipment_cedgepar_geomWearLenght3>
<tooling_equipment_cedgepar_WearDiameter>Verschleiß Durchmesser</tooling_equipment_cedgepar_WearDiameter>
<tooling_equipment_cedgepar_WearSlotWdth>Verschleiß Rillenbreite</tooling_equipment_cedgepar_WearSlotWdth>
<tooling_equipment_cedgepar_WearGeomPrjection>Verschleiß Überschuss</tooling_equipment_cedgepar_WearGeomPrjection>
<tooling_equipment_cedgepar_corrAngle>Korrekturwinkel</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Armlänge</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>Kugelradius</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_cedgepar_realRadius>Wirklicher Radius</tooling_equipment_cedgepar_realRadius>
<tooling_equipment_cedgepar_realLength>Wirkliche Länge</tooling_equipment_cedgepar_realLength>
<tooling_equipment_list_select_none>Keine Auswahl</tooling_equipment_list_select_none>
<tooling_equipment_list_select_generic>Allgemein</tooling_equipment_list_select_generic>
<tooling_equipment_list_select_timeLife>Nach Zeit</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>Nach Zähler</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_distanceLife>Nach Entfernung</tooling_equipment_list_select_distanceLife>
<tooling_equipment_list_select_wearLife>Nach Verschleiß</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Rot. Schaltzeit</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Rot. Gegen den Uhrzeigersinn</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_doubleRotation>Alle Drehrichtungen</tooling_equipment_list_select_doubleRotation>
<tooling_equipment_list_select_millingTool>Verb zum Fräsen</tooling_equipment_list_select_millingTool>
<tooling_equipment_list_select_ballNoseEndMill>Fr.Zyl.Kopf Kugel</tooling_equipment_list_select_ballNoseEndMill>
<tooling_equipment_list_select_conicalBallEnd>Fr.konisch.Kopf Kugel</tooling_equipment_list_select_conicalBallEnd>
<tooling_equipment_list_select_endMill>Schaftfräse</tooling_equipment_list_select_endMill>
<tooling_equipment_list_select_endMillCornerRounding>Schaftfräse, abger.Kan.</tooling_equipment_list_select_endMillCornerRounding>
<tooling_equipment_list_select_angleHeadCutter>Fr.Winkelkopf</tooling_equipment_list_select_angleHeadCutter>
<tooling_equipment_list_select_cornRoundAngHdCut>Fräse Wink.abger.Kan.</tooling_equipment_list_select_cornRoundAngHdCut>
<tooling_equipment_list_select_facingTool>Planfräse</tooling_equipment_list_select_facingTool>
<tooling_equipment_list_select_threadCutter>Gewindendefräse</tooling_equipment_list_select_threadCutter>
<tooling_equipment_list_select_sideMill>Scheibenfräse</tooling_equipment_list_select_sideMill>
<tooling_equipment_list_select_saw>Säge</tooling_equipment_list_select_saw>
<tooling_equipment_list_select_bevelledCutter>Fräse Stumpf Kegel</tooling_equipment_list_select_bevelledCutter>
<tooling_equipment_list_select_bevelledCutterCorner>Fr.Stum.Keg, abger.Kan</tooling_equipment_list_select_bevelledCutterCorner>
<tooling_equipment_list_select_tapDieSinkCutter>Konische Fräse f. Gesenke</tooling_equipment_list_select_tapDieSinkCutter>
<tooling_equipment_list_select_drillThreadCut>Fr.bohr./schn.</tooling_equipment_list_select_drillThreadCut>
<tooling_equipment_list_select_twistDrill>Helikoidalbohrer</tooling_equipment_list_select_twistDrill>
<tooling_equipment_list_select_solidDrill>Vollbohr.Spi.</tooling_equipment_list_select_solidDrill>
<tooling_equipment_list_select_boringBar>Bohrstange</tooling_equipment_list_select_boringBar>
<tooling_equipment_list_select_centerDrill>Zentrierer</tooling_equipment_list_select_centerDrill>
<tooling_equipment_list_select_counterSink>Kegelsenker konisch</tooling_equipment_list_select_counterSink>
<tooling_equipment_list_select_counterBore>Kegelsenker eben</tooling_equipment_list_select_counterBore>
<tooling_equipment_list_select_tap>Spitze</tooling_equipment_list_select_tap>
<tooling_equipment_list_select_fineTap>Spitze Feingew.</tooling_equipment_list_select_fineTap>
<tooling_equipment_list_select_tapWhitworth>Spitze Gew. WW</tooling_equipment_list_select_tapWhitworth>
<tooling_equipment_list_select_reamer>Reibahle</tooling_equipment_list_select_reamer>
<tooling_equipment_list_select_slottingSaw>Säge für Nuten</tooling_equipment_list_select_slottingSaw>
<tooling_equipment_list_select_3Dprobe>Tast.Mess. 3D</tooling_equipment_list_select_3Dprobe>
<tooling_equipment_list_select_edgeFinder>Tastkopf Kanten</tooling_equipment_list_select_edgeFinder>
<tooling_equipment_list_select_monoProbe>Mono-Tastkopf</tooling_equipment_list_select_monoProbe>
<tooling_equipment_list_select_lProbe>L-Tastkopf</tooling_equipment_list_select_lProbe>
<tooling_equipment_list_select_starProbe>Stern-Tastkopf</tooling_equipment_list_select_starProbe>
<tooling_equipment_list_select_calibratingTool>Kalibrier-Werk.</tooling_equipment_list_select_calibratingTool>
<tooling_equipment_list_select_stop>Anschlag</tooling_equipment_list_select_stop>
<tooling_equipment_list_select_auxiliaryTools>Hilfswerkzeuge</tooling_equipment_list_select_auxiliaryTools>
<tooling_equipment_list_select_newfamily>Eine neue Familie hinzufügen</tooling_equipment_list_select_newfamily>
<tooling_equipment_list_select_availfamilies>Verfügbare Familien:</tooling_equipment_list_select_availfamilies>
<physical_type_position_select_magazine_location>Halterung im Magazin</physical_type_position_select_magazine_location>
<physical_type_position_select_spindle>Spindel</physical_type_position_select_spindle>
<physical_type_position_select_gripper>Zange</physical_type_position_select_gripper>
<physical_type_position_select_loader>Belader</physical_type_position_select_loader>
<physical_type_position_select_transfer_location>Transferposition</physical_type_position_select_transfer_location>
<physical_type_position_select_loading_station>Lade-/Entladestation</physical_type_position_select_loading_station>
<physical_type_position_select_loading_point>Lade-/Entladepunkt</physical_type_position_select_loading_point>
<tooling_equipment_list_select_disk>Scheibe</tooling_equipment_list_select_disk>
<tooling_equipment_list_select_cutter50>Kl. Messer 50%%</tooling_equipment_list_select_cutter50>
<tooling_equipment_list_select_cutter70>Kl. Messer 70%%</tooling_equipment_list_select_cutter70>
<tooling_equipment_list_select_cutter80>Kl. Messer 80%%</tooling_equipment_list_select_cutter80>
<tooling_equipment_list_select_blade1>Klinge 1</tooling_equipment_list_select_blade1>
<tooling_equipment_list_select_blade2>Klinge 2</tooling_equipment_list_select_blade2>
<tooling_equipment_list_select_blade3>Klinge 3</tooling_equipment_list_select_blade3>
<tooling_equipment_list_select_blade4>Klinge 4</tooling_equipment_list_select_blade4>
<tooling_equipment_list_select_blade5>Klinge 5</tooling_equipment_list_select_blade5>
<tooling_equipment_list_select_blade6>Klinge 6</tooling_equipment_list_select_blade6>
<tooling_equipment_list_select_blade7>Klinge 7</tooling_equipment_list_select_blade7>
<tooling_equipment_list_select_blade300>Klinge ⌀300</tooling_equipment_list_select_blade300>
<tooling_equipment_list_select_blade400>Klinge ⌀400</tooling_equipment_list_select_blade400>
<tooling_equipment_list_select_blade500>Klinge ⌀500</tooling_equipment_list_select_blade500>
<tooling_equipment_list_select_radioProbe1.1>Radio Probe 1 - Empfänger 1</tooling_equipment_list_select_radioProbe1.1>
<tooling_equipment_list_select_radioProbe1.2>Radio Probe 2 - Empfänger 1</tooling_equipment_list_select_radioProbe1.2>
<tooling_equipment_list_select_radioProbe1.3>Radio Probe 3 - Empfänger 1</tooling_equipment_list_select_radioProbe1.3>
<tooling_equipment_list_select_radioProbe1.4>Radio Probe 4 - Empfänger 1</tooling_equipment_list_select_radioProbe1.4>
<tooling_equipment_list_select_radioProbe2.1>Radio Probe 1 - Empfänger 2</tooling_equipment_list_select_radioProbe2.1>
<tooling_equipment_list_select_radioProbe2.2>Radio Probe 2 - Empfänger 2</tooling_equipment_list_select_radioProbe2.2>
<tooling_equipment_list_select_radioProbe2.3>Radio Probe 3 - Empfänger 2</tooling_equipment_list_select_radioProbe2.3>
<tooling_equipment_list_select_radioProbe2.4>Radio Probe 4 - Empfänger 2</tooling_equipment_list_select_radioProbe2.4>
<tooling_equipment_list_select_diskUltrasound10>Ultraschallscheibenamplitude 10%%</tooling_equipment_list_select_diskUltrasound10>
<tooling_equipment_list_select_diskUltrasound20>Ultraschallscheibenamplitude 20%%</tooling_equipment_list_select_diskUltrasound20>
<tooling_equipment_list_select_diskUltrasound30>Ultraschallscheibenamplitude 30%%</tooling_equipment_list_select_diskUltrasound30>
<tooling_equipment_list_select_diskUltrasound40>Ultraschallscheibenamplitude 40%%</tooling_equipment_list_select_diskUltrasound40>
<tooling_equipment_list_select_diskUltrasound50>Ultraschallscheibenamplitude 50%%</tooling_equipment_list_select_diskUltrasound50>
<tooling_equipment_list_select_diskUltrasound60>Ultraschallscheibenamplitude 60%%</tooling_equipment_list_select_diskUltrasound60>
<tooling_equipment_list_select_diskUltrasound70>Ultraschallscheibenamplitude 70%%</tooling_equipment_list_select_diskUltrasound70>
<tooling_equipment_list_select_diskUltrasound80>Ultraschallscheibenamplitude 80%%</tooling_equipment_list_select_diskUltrasound80>
<tooling_equipment_list_select_diskUltrasound90>Ultraschallscheibenamplitude 90%%</tooling_equipment_list_select_diskUltrasound90>
<tooling_equipment_list_select_diskUltrasound100>Ultraschallscheibenamplitude 100%%</tooling_equipment_list_select_diskUltrasound100>
<tooling_equipment_list_select_bladeUltrasound10>Ultraschallklingenamplitude 10%%</tooling_equipment_list_select_bladeUltrasound10>
<tooling_equipment_list_select_bladeUltrasound20>Ultraschallklingenamplitude 20%%</tooling_equipment_list_select_bladeUltrasound20>
<tooling_equipment_list_select_bladeUltrasound30>Ultraschallklingenamplitude 30%%</tooling_equipment_list_select_bladeUltrasound30>
<tooling_equipment_list_select_bladeUltrasound40>Ultraschallklingenamplitude 40%%</tooling_equipment_list_select_bladeUltrasound40>
<tooling_equipment_list_select_bladeUltrasound50>Ultraschallklingenamplitude 50%%</tooling_equipment_list_select_bladeUltrasound50>
<tooling_equipment_list_select_bladeUltrasound60>Ultraschallklingenamplitude 60%%</tooling_equipment_list_select_bladeUltrasound60>
<tooling_equipment_list_select_bladeUltrasound70>Ultraschallklingenamplitude 70%%</tooling_equipment_list_select_bladeUltrasound70>
<tooling_equipment_list_select_bladeUltrasound80>Ultraschallklingenamplitude 80%%</tooling_equipment_list_select_bladeUltrasound80>
<tooling_equipment_list_select_bladeUltrasound90>Ultraschallklingenamplitude 90%%</tooling_equipment_list_select_bladeUltrasound90>
<tooling_equipment_list_select_bladeUltrasound100>Ultraschallklingenamplitude 100%%</tooling_equipment_list_select_bladeUltrasound100>
<modal_confirm_title>Bestätigungsanforderung</modal_confirm_title>
<modal_ok_button>OK</modal_ok_button>
<modal_cancel_button>Abbrechen</modal_cancel_button>
<modal_confirm_delete_tool>Soll das Werkzeug wirklich gelöscht werden?</modal_confirm_delete_tool>
<modal_confirm_delete_maintenances>Soll die ausgewählte Wartung wirklich gelöscht werden?</modal_confirm_delete_maintenances>
<modal_confirm_delete_note>Soll die Anmerkung wirklich gelöscht werden?</modal_confirm_delete_note>
<modal_confirm_delete_attachment>Soll diese Anlage wirklich gelöscht werden?</modal_confirm_delete_attachment>
<modal_confirm_delete_edge>Soll die Schneide wirklich gelöscht werden?</modal_confirm_delete_edge>
<modal_confirm_delete_shank>Soll der Schaft wirklich gelöscht werden?</modal_confirm_delete_shank>
<siemens_modal_confirm_delete_shank>Soll das Multitool wirklich gelöscht werden?</siemens_modal_confirm_delete_shank>
<modal_confirm_delete_tool_inshank>Soll das Werkzeug wirklich aus dem Schaft entfernt werden?</modal_confirm_delete_tool_inshank>
<siemens_modal_confirm_delete_tool_inshank>Soll das Werkzeug wirklich aus dem Multitool entfernt werden?</siemens_modal_confirm_delete_tool_inshank>
<modal_confirm_delete_alarms>Möchten Sie wirklich alle Alarme löschen?</modal_confirm_delete_alarms>
<modal_confirm_perform_maintenance>Wurde diese Wartung wirklich durchgeführt?</modal_confirm_perform_maintenance>
<modal_confirm_delete_family>Soll die Familie wirklich gelöscht werden?</modal_confirm_delete_family>
<maintenance_header_title>Wartungsverwaltung</maintenance_header_title>
<maintenance_card_btn_save_note>Speichern</maintenance_card_btn_save_note>
<maintenance_card_btn_view_all_attach>Alle Dateien anzeigen</maintenance_card_btn_view_all_attach>
<maintenance_card_btn_hide_all_attach>Nur die neuesten Dateien anzeigen</maintenance_card_btn_hide_all_attach>
<maintenance_card_btn_add_attach>Eine Datei hinzufügen</maintenance_card_btn_add_attach>
<maintenance_card_btn_view_all_note>Alle Anmerkungen anzeigen</maintenance_card_btn_view_all_note>
<maintenance_card_btn_hide_all_note>Nur die letzten Anmerkungen anzeigen</maintenance_card_btn_hide_all_note>
<maintenance_card_label_btn_footer>Als ausgeführt kennzeichnen</maintenance_card_label_btn_footer>
<maintenance_header_label_procedure>Die Wartung nach Namen suchen</maintenance_header_label_procedure>
<maintenance_header_label_procedure_placeholder>Wartungsname...</maintenance_header_label_procedure_placeholder>
<maintenance_header_label_state>Status</maintenance_header_label_state>
<maintenance_label_create_intervention>Einen Wartungseingriff erzeugen</maintenance_label_create_intervention>
<maintenance_label_disable-maintenance>Eine Wartung auswählen...</maintenance_label_disable-maintenance>
<maintenance_state_expired>Abgelaufen</maintenance_state_expired>
<maintenance_state_closed>Geschlossen</maintenance_state_closed>
<maintenance_state_running>Nicht abgelaufen</maintenance_state_running>
<maintenance_state_ending>Läuft ab</maintenance_state_ending>
<maintenance_table_header_counter>Zähler</maintenance_table_header_counter>
<maintenance_table_header_deadline>Fälligkeit</maintenance_table_header_deadline>
<maintenance_table_header_state>Status</maintenance_table_header_state>
<maintenance_table_header_title>Überschrift</maintenance_table_header_title>
<maintenance_card_label_date_timestamp>Am %s um %s hinzugefügt</maintenance_card_label_date_timestamp>
<maintenance_card_btn_cancel_modify_note>Löschen</maintenance_card_btn_cancel_modify_note>
<maintenance_card_btn_save_modify_note>Speichern</maintenance_card_btn_save_modify_note>
<maintenance_date_neverdone>Kein Wartungseingriff durchgeführt</maintenance_date_neverdone>
<maintenance_date_justdone>Der letzte Eingriff erfolgte vor ein paar Minuten durch: %s</maintenance_date_justdone>
<maintenance_date_hours>Der letzte Eingriff erfolgte vor %d Stunden durch: %s</maintenance_date_hours>
<maintenance_date_days>Der letzte Eingriff erfolgte vor %d Tagen durch: %s</maintenance_date_days>
<maintenance_date_fixeddate>Der letzte Eingriff erfolgte am: %s, von: %s</maintenance_date_fixeddate>
<maintenance_card_created_timestamp>Wartung erzeugt am %s um %s</maintenance_card_created_timestamp>
<maintenance_card_attachments>Anlagen</maintenance_card_attachments>
<maintenance_card_notes>Anmerkungen</maintenance_card_notes>
<create_maintenance_lbl_title_window>Erzeugung eines Wartungseingriffs</create_maintenance_lbl_title_window>
<create_maintenance_lbl_title>Überschrift</create_maintenance_lbl_title>
<create_maintenance_btn_cancel>Abbrechen</create_maintenance_btn_cancel>
<create_maintenance_lbl_date>Datum</create_maintenance_lbl_date>
<create_maintenance_lbl_description>Beschreibung</create_maintenance_lbl_description>
<create_maintenance_lbl_end_time>Stunde</create_maintenance_lbl_end_time>
<create_maintenance_lbl_typology>Art</create_maintenance_lbl_typology>
<create_maintenance_lbl_repeat>Wiederholen alle</create_maintenance_lbl_repeat>
<create_maintenance_repeat_day>Tage</create_maintenance_repeat_day>
<create_maintenance_repeat_hour>Stunden</create_maintenance_repeat_hour>
<create_maintenance_repeat_minutes>Minuten</create_maintenance_repeat_minutes>
<create_maintenance_repeat_months>Monate</create_maintenance_repeat_months>
<create_maintenance_lbl_fixeddate>Fixes Datum</create_maintenance_lbl_fixeddate>
<create_maintenance_lbl_temporal>Zeitraum</create_maintenance_lbl_temporal>
<create_maintenance_btn_add_confirm>Wartung erzeugen</create_maintenance_btn_add_confirm>
<create_maintenance_btn_edit_confirm>Wartung ändern</create_maintenance_btn_edit_confirm>
<production_header_title>Produktionsverwaltung</production_header_title>
<production_box_video_button_cms>Active</production_box_video_button_cms>
<production_box_video_button_cnc>NC</production_box_video_button_cnc>
<production_box_video_button_prod>Prod.</production_box_video_button_prod>
<production_softkeys_prefered_header_title>Bevorzugte Softkeys</production_softkeys_prefered_header_title>
<card_axes_production_axes_tab_interp>Interp.</card_axes_production_axes_tab_interp>
<card_axes_production_axes_tab_om>Absol.</card_axes_production_axes_tab_om>
<card_axes_production_axes_tab_goto>To-Go</card_axes_production_axes_tab_goto>
<card_axes_production_axes_tab_prog>Prog.</card_axes_production_axes_tab_prog>
<card_production_rapid>Rapid:</card_production_rapid>
<card_production_work>Work:</card_production_work>
<card_job_production_offset_length>Wirkliche Länge</card_job_production_offset_length>
<card_job_production_offset_radius>Wirkliche Radius</card_job_production_offset_radius>
<card_job_production_offset_diameter>Wirklicher Durchmesser:</card_job_production_offset_diameter>
<card_job_production_origin>Ursprung aktiv:</card_job_production_origin>
<card_job_production_offset>Korrekturgerät aktiv:</card_job_production_offset>
<siemens_card_job_production_offset>Schneide aktiv:</siemens_card_job_production_offset>
<card_job_production_iso_lines>Linien ISO:</card_job_production_iso_lines>
<card_job_production_message>Meldung:</card_job_production_message>
<production_label_select_prg>Programm auswählen</production_label_select_prg>
<production_label_select_auto_mode>Den Automatikmodus auswählen, um ein Programm auszuführen.</production_label_select_auto_mode>
<production_softkeys_prefered_sel_in_progr>Auswahl läuft</production_softkeys_prefered_sel_in_progr>
<button_production_go_to_selection>Gehe zur Auswahl</button_production_go_to_selection>
<modal_load_program_lbl_title_window>Programm-Lader</modal_load_program_lbl_title_window>
<modal_load_program_lbl_box_select_program>Programm auswählen</modal_load_program_lbl_box_select_program>
<modal_load_program_btn_upload_program>Laden und aktivieren</modal_load_program_btn_upload_program>
<modal_load_program_btn_load_program>Aktivieren</modal_load_program_btn_load_program>
<modal_load_program_search_placeholder>Ein Programm mit Namen suchen</modal_load_program_search_placeholder>
<modal_load_program_creation_date>Erzeugungsdatum:</modal_load_program_creation_date>
<modal_load_program_last_change_date>Datum der letzten Änderung:</modal_load_program_last_change_date>
<modal_load_program_lbl_img_not_found>Vorschau nicht verfügbar</modal_load_program_lbl_img_not_found>
<modal_load_program_lbl_upload_all_files>Alle Dateien des ausgewählten Ordners laden</modal_load_program_lbl_upload_all_files>
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
<alarm_history_header_title>Verwalter Alarmhistorie</alarm_history_header_title>
<alarm_history_body_filter>Alarme nach Namen filtern</alarm_history_body_filter>
<alarm_history_body_filter_placeholder>Überschrift...</alarm_history_body_filter_placeholder>
<alarm_history_body_filter_source>Quelle</alarm_history_body_filter_source>
<alarm_history_body_date_range>Datumsbereich</alarm_history_body_date_range>
<alarm_history_body_user>Benutzer</alarm_history_body_user>
<alarms_history_table_source>Quelle</alarms_history_table_source>
<alarms_history_table_title>Überschrift</alarms_history_table_title>
<alarms_history_table_date>Datum</alarms_history_table_date>
<alarms_history_table_user>Benutzer</alarms_history_table_user>
<alarm_history_label_select_alarms>Einen Alarm auswählen...</alarm_history_label_select_alarms>
<alarm_history_users_not_user>Kein-Benutzer</alarm_history_users_not_user>
<create_user_lbl_title_window>Benutzer ändern</create_user_lbl_title_window>
<create_user_lbl_firstname>Name</create_user_lbl_firstname>
<create_user_lbl_lastname>Nachname</create_user_lbl_lastname>
<create_user_lbl_password>Passwort</create_user_lbl_password>
<create_user_lbl_username>Benutzername</create_user_lbl_username>
<create_user_btn_add_confirm>Hinzufügen</create_user_btn_add_confirm>
<create_user_btn_edit_confirm>Ändern</create_user_btn_edit_confirm>
<create_user_btn_cancel>Abbrechen</create_user_btn_cancel>
<create_user_psw_equals>Die Passwörter müssen sich unterscheiden</create_user_psw_equals>
<password_user_lbl_actpassword>Aktuelles Passwort</password_user_lbl_actpassword>
<password_user_lbl_newpassword>Neues Passwort</password_user_lbl_newpassword>
<password_user_lbl_title_window>Passwort ändern: %s</password_user_lbl_title_window>
<role_user_lbl_title_window>Rolle ändern: %s</role_user_lbl_title_window>
<modal_confirm_delete_user>Soll der Benutzer wirklich gelöscht werden?</modal_confirm_delete_user>
<users_label_create_users>Einen neuen Benutzer hinzufügen</users_label_create_users>
<users_header_title>Benutzerverwaltung</users_header_title>
<users_header_label_userfilter>Benutzer nach Benutzernamen filtern</users_header_label_userfilter>
<users_header_label_userfilter_placeholder>Benutzername...</users_header_label_userfilter_placeholder>
<users_table_header_avatar>Avatar</users_table_header_avatar>
<users_table_header_username>Benutzername</users_table_header_username>
<users_table_header_firstname>Name</users_table_header_firstname>
<users_table_header_lastname>Nachname</users_table_header_lastname>
<users_table_header_language>Sprache</users_table_header_language>
<users_table_header_role>Rolle</users_table_header_role>
<footer_tooltip_production>Produktionsmanager</footer_tooltip_production>
<footer_tooltip_tooling>Tool Manager</footer_tooltip_tooling>
<footer_tooltip_maintenance>Manager Maschinenwartung</footer_tooltip_maintenance>
<footer_tooltip_alarms>Alarmhistorie</footer_tooltip_alarms>
<footer_tooltip_report>Bericht und Maschinenstatus</footer_tooltip_report>
<footer_tooltip_utilities>Dienstprogramm und externe Software</footer_tooltip_utilities>
<footer_tooltip_scada>Seiten Scada</footer_tooltip_scada>
<footer_tooltip_under_hood>Bereich Unterschicht öffnen/schließen</footer_tooltip_under_hood>
<footer_tooltip_job_editor>Job-Editor</footer_tooltip_job_editor>
<footer_tooltip_users>Benutzer-Manager</footer_tooltip_users>
<header_tooltip_btn_close>CMS-Schritt schließen</header_tooltip_btn_close>
<header_tooltip_btn_minimize>CMS-Schritt minimieren</header_tooltip_btn_minimize>
<header_tooltip_btn_help>Help der Maschine anzeigen</header_tooltip_btn_help>
<header_tooltip_btn_mchinfo>Informationen der Maschine anzeigen</header_tooltip_btn_mchinfo>
<header_tooltip_btn_usrinfo>Informationen des Benutzers anzeigen</header_tooltip_btn_usrinfo>
<header_tooltip_btn_nc_maintenance>Die Liste der verfallenen Wartungen öffnen/schließen</header_tooltip_btn_nc_maintenance>
<header_tooltip_close_uth>Bereich unter-dem-Kasten schließen</header_tooltip_close_uth>
<header_tooltip_swipedown>Bereich unter-dem-Kasten schließen</header_tooltip_swipedown>
<header_tooltip_nc_error>CN in Error. Die Liste der Alarme öffnen/schließen</header_tooltip_nc_error>
<header_tooltip_nc_idle>CN in Warten auf Befehle</header_tooltip_nc_idle>
<header_tooltip_nc_running>CN in Ausführung von Befehlen</header_tooltip_nc_running>
<header_tooltip_Nc_Process>Prozessinformationen</header_tooltip_Nc_Process>
<header_tooltip_mainstat_ko>Maschinenvorrichtungen nicht OK</header_tooltip_mainstat_ko>
<header_tooltip_mainstat_ok>Maschine in Betrieb</header_tooltip_mainstat_ok>
<header_tooltip_powstat_ko>Maschine nicht betriebsbereit</header_tooltip_powstat_ko>
<header_tooltip_powstat_ok>Maschine betriebsbereit</header_tooltip_powstat_ok>
<header_tooltip_emergency>Not-Halt-Taster betätigt</header_tooltip_emergency>
<header_tooltip_key>Schlüssel nicht eingesteckt</header_tooltip_key>
<header_tooltip_power-on>Achsen ohne Leistung</header_tooltip_power-on>
<header_tooltip_protections>Sicherheitsabdeckungen nicht OK</header_tooltip_protections>
<header_tooltip_settings-mode>Einstellmodus aktiviert</header_tooltip_settings-mode>
<header_tooltip_air-flow>Druckluft nicht OK</header_tooltip_air-flow>
<header_tooltip_zeroing>Nullstellen der Achsen erforderlich</header_tooltip_zeroing>
<heads_tooltip_abrasive>Schleifmittel verwendet</heads_tooltip_abrasive>
<heads_tooltip_active>Kopf aktiv</heads_tooltip_active>
<heads_tooltip_load>Aktuelle Last</heads_tooltip_load>
<heads_tooltip_mpa>Aktueller Druck</heads_tooltip_mpa>
<heads_tooltip_name>Name des Kopfes</heads_tooltip_name>
<heads_tooltip_override>Prozentsatz der Überbrückung</heads_tooltip_override>
<heads_tooltip_ovminus>Überbrückung verringern</heads_tooltip_ovminus>
<heads_tooltip_ovplus>Überbrückung vergrößern</heads_tooltip_ovplus>
<heads_tooltip_rpm>Aktuelle Geschwindigkeit</heads_tooltip_rpm>
<heads_tooltip_tool>ID montiertes Werkzeug</heads_tooltip_tool>
<heads_tooltip_vacuum>Vakuum am Kopf</heads_tooltip_vacuum>
<heads_tooltip_process>CN-Prozess Inhaber des Kopfes</heads_tooltip_process>
<process_tooltip_select>Den Prozess %d auswählen</process_tooltip_select>
<job_item_part_program>Teileprogramm</job_item_part_program>
<job_item_macro_cms>CMS-Makro</job_item_macro_cms>
<job_item_text>Kopf</job_item_text>
<job_item_pause>Pause</job_item_pause>
<job_item_delay>Verzögerung</job_item_delay>
<job_item_origin>Ursprung</job_item_origin>
<job_item_end_program>Programmende</job_item_end_program>
</root>
+39 -1
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Automatically generated by nicola.carminati: 2019-05-08 -->
<!-- Automatically generated by lucio.maranta: 2019-07-03 -->
<root>
<language_it>English</language_it>
<header_maintainance_request>Maintenance request</header_maintainance_request>
@@ -54,6 +54,10 @@
<machineinfo_core_scm_version>Maestro-Active Core Version:</machineinfo_core_scm_version>
<machineinfo_scm_client_version>Maestro-Active Client Version:</machineinfo_scm_client_version>
<machineinfo_scm_dateformat>Maestro-Active Data Format:</machineinfo_scm_dateformat>
<contactinfo_lbl_title>Contact Info</contactinfo_lbl_title>
<contact_name>Contact Name:</contact_name>
<contact_email>Email:</contact_email>
<contact_phoneNumber>Phone Number:</contact_phoneNumber>
<head_label_rpm>Rpm</head_label_rpm>
<head_label_tool>Tool</head_label_tool>
<head_label_load>Load</head_label_load>
@@ -106,6 +110,7 @@
<hmi_cmd_fanuc_3>Ofst</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>Sys</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>Msg</hmi_cmd_fanuc_5>
<hmi_cmd_fanuc_6>Mgi</hmi_cmd_fanuc_6>
<tooling_title_label>Tool-Manager</tooling_title_label>
<store_title_magazine>Magazine</store_title_magazine>
<store_title_spindle>Spindle</store_title_spindle>
@@ -328,6 +333,7 @@
<tooling_family_param_reviveDelta>Δ Revive tool</tooling_family_param_reviveDelta>
<siemens_tooling_equipment_cedgepar_id>Cutting Edge Id</siemens_tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_id>Offset Id</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_unitOfMeasure>Unit of measure</tooling_equipment_cedgepar_unitOfMeasure>
<tooling_equipment_cedgepar_residualLife>Residual Life</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>Nominal Life</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>Pre-Alarm Limit</tooling_equipment_cedgepar_preAlmLife>
@@ -372,10 +378,13 @@
<tooling_equipment_cedgepar_corrAngle>Angle Correction</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Boom Lenght</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>Ball Radius</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_cedgepar_realRadius>Real Radius</tooling_equipment_cedgepar_realRadius>
<tooling_equipment_cedgepar_realLength>Real Length</tooling_equipment_cedgepar_realLength>
<tooling_equipment_list_select_none>None</tooling_equipment_list_select_none>
<tooling_equipment_list_select_generic>Generic</tooling_equipment_list_select_generic>
<tooling_equipment_list_select_timeLife>Time</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>Count</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_distanceLife>Distance</tooling_equipment_list_select_distanceLife>
<tooling_equipment_list_select_wearLife>Wear</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Clockwhise Rot.</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Counter Clockwhise Rot.</tooling_equipment_list_select_counterClockWhise>
@@ -445,6 +454,26 @@
<tooling_equipment_list_select_radioProbe2.2>Radio Probe 2 - Reciever 2</tooling_equipment_list_select_radioProbe2.2>
<tooling_equipment_list_select_radioProbe2.3>Radio Probe 3 - Reciever 2</tooling_equipment_list_select_radioProbe2.3>
<tooling_equipment_list_select_radioProbe2.4>Radio Probe 4 - Reciever 2</tooling_equipment_list_select_radioProbe2.4>
<tooling_equipment_list_select_diskUltrasound10>Ultrasound disk amplitude 10%%</tooling_equipment_list_select_diskUltrasound10>
<tooling_equipment_list_select_diskUltrasound20>Ultrasound disk amplitude 20%%</tooling_equipment_list_select_diskUltrasound20>
<tooling_equipment_list_select_diskUltrasound30>Ultrasound disk amplitude 30%%</tooling_equipment_list_select_diskUltrasound30>
<tooling_equipment_list_select_diskUltrasound40>Ultrasound disk amplitude 40%%</tooling_equipment_list_select_diskUltrasound40>
<tooling_equipment_list_select_diskUltrasound50>Ultrasound disk amplitude 50%%</tooling_equipment_list_select_diskUltrasound50>
<tooling_equipment_list_select_diskUltrasound60>Ultrasound disk amplitude 60%%</tooling_equipment_list_select_diskUltrasound60>
<tooling_equipment_list_select_diskUltrasound70>Ultrasound disk amplitude 70%%</tooling_equipment_list_select_diskUltrasound70>
<tooling_equipment_list_select_diskUltrasound80>Ultrasound disk amplitude 80%%</tooling_equipment_list_select_diskUltrasound80>
<tooling_equipment_list_select_diskUltrasound90>Ultrasound disk amplitude 90%%</tooling_equipment_list_select_diskUltrasound90>
<tooling_equipment_list_select_diskUltrasound100>Ultrasound disk amplitude 100%%</tooling_equipment_list_select_diskUltrasound100>
<tooling_equipment_list_select_bladeUltrasound10>Ultrasound blade amplitude 10%%</tooling_equipment_list_select_bladeUltrasound10>
<tooling_equipment_list_select_bladeUltrasound20>Ultrasound blade amplitude 20%%</tooling_equipment_list_select_bladeUltrasound20>
<tooling_equipment_list_select_bladeUltrasound30>Ultrasound blade amplitude 30%%</tooling_equipment_list_select_bladeUltrasound30>
<tooling_equipment_list_select_bladeUltrasound40>Ultrasound blade amplitude 40%%</tooling_equipment_list_select_bladeUltrasound40>
<tooling_equipment_list_select_bladeUltrasound50>Ultrasound blade amplitude 50%%</tooling_equipment_list_select_bladeUltrasound50>
<tooling_equipment_list_select_bladeUltrasound60>Ultrasound blade amplitude 60%%</tooling_equipment_list_select_bladeUltrasound60>
<tooling_equipment_list_select_bladeUltrasound70>Ultrasound blade amplitude 70%%</tooling_equipment_list_select_bladeUltrasound70>
<tooling_equipment_list_select_bladeUltrasound80>Ultrasound blade amplitude 80%%</tooling_equipment_list_select_bladeUltrasound80>
<tooling_equipment_list_select_bladeUltrasound90>Ultrasound blade amplitude 90%%</tooling_equipment_list_select_bladeUltrasound90>
<tooling_equipment_list_select_bladeUltrasound100>Ultrasound blade amplitude 100%%</tooling_equipment_list_select_bladeUltrasound100>
<modal_confirm_title>Confirm Operation</modal_confirm_title>
<modal_ok_button>Ok</modal_ok_button>
<modal_cancel_button>Cancel</modal_cancel_button>
@@ -457,6 +486,7 @@
<siemens_modal_confirm_delete_shank>Are you sure to delete this multitool?</siemens_modal_confirm_delete_shank>
<modal_confirm_delete_tool_inshank>Are you sure to unload this tool from his shank?</modal_confirm_delete_tool_inshank>
<siemens_modal_confirm_delete_tool_inshank>Are you sure to unload this tool from his multitool?</siemens_modal_confirm_delete_tool_inshank>
<modal_confirm_delete_alarms>Are you sure to delete all the alarms?</modal_confirm_delete_alarms>
<modal_confirm_perform_maintenance>Are you sure you have performed this maintenance?</modal_confirm_perform_maintenance>
<modal_confirm_delete_family>Are you sure to delete this family?</modal_confirm_delete_family>
<maintenance_header_title>Maintenance manager</maintenance_header_title>
@@ -512,9 +542,15 @@
<production_box_video_button_cnc>NC</production_box_video_button_cnc>
<production_box_video_button_prod>Prod</production_box_video_button_prod>
<production_softkeys_prefered_header_title>Favorite Softkey</production_softkeys_prefered_header_title>
<card_axes_production_axes_tab_interp>Interp.</card_axes_production_axes_tab_interp>
<card_axes_production_axes_tab_om>Absol.</card_axes_production_axes_tab_om>
<card_axes_production_axes_tab_goto>To-Go</card_axes_production_axes_tab_goto>
<card_axes_production_axes_tab_prog>Prog.</card_axes_production_axes_tab_prog>
<card_production_rapid>Rapid:</card_production_rapid>
<card_production_work>Work:</card_production_work>
<card_job_production_offset_length>Real length:</card_job_production_offset_length>
<card_job_production_offset_radius>Real radius:</card_job_production_offset_radius>
<card_job_production_offset_diameter>Real diameter:</card_job_production_offset_diameter>
<card_job_production_origin>Active origin:</card_job_production_origin>
<card_job_production_offset>Active offset:</card_job_production_offset>
<siemens_card_job_production_offset>Active Cutting-edge:</siemens_card_job_production_offset>
@@ -522,6 +558,8 @@
<card_job_production_message>Message:</card_job_production_message>
<production_label_select_prg>Select a program</production_label_select_prg>
<production_label_select_auto_mode>Put the NC in Auto mode for execute a Program</production_label_select_auto_mode>
<production_softkeys_prefered_sel_in_progr>Selection in progress</production_softkeys_prefered_sel_in_progr>
<button_production_go_to_selection>Go to selection</button_production_go_to_selection>
<modal_load_program_lbl_title_window>Program-Loader</modal_load_program_lbl_title_window>
<modal_load_program_lbl_box_select_program>Select a program</modal_load_program_lbl_box_select_program>
<modal_load_program_btn_upload_program>Load &#38; Activate</modal_load_program_btn_upload_program>
+40 -2
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Automatically generated by nicola.carminati: 2019-05-08 -->
<!-- Automatically generated by lucio.maranta: 2019-07-03 -->
<root>
<language_it>Français</language_it>
<header_maintainance_request>Procéder à la maintenance</header_maintainance_request>
@@ -54,6 +54,10 @@
<machineinfo_core_scm_version>Version Core Maestro-Active :</machineinfo_core_scm_version>
<machineinfo_scm_client_version>Version Client Maestro-Active :</machineinfo_scm_client_version>
<machineinfo_scm_dateformat>Format des dates Maestro-Active :</machineinfo_scm_dateformat>
<contactinfo_lbl_title>Informations de contact</contactinfo_lbl_title>
<contact_name>Nom du contact</contact_name>
<contact_email>Email:</contact_email>
<contact_phoneNumber>Numéro de Téléphone:</contact_phoneNumber>
<head_label_rpm>Tpm</head_label_rpm>
<head_label_tool>Outil</head_label_tool>
<head_label_load>Charge</head_label_load>
@@ -106,6 +110,7 @@
<hmi_cmd_fanuc_3>Ofst</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>Sys</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>Msg</hmi_cmd_fanuc_5>
<hmi_cmd_fanuc_6>Mgi</hmi_cmd_fanuc_6>
<tooling_title_label>Gestionnaire Outils</tooling_title_label>
<store_title_magazine>Magasin</store_title_magazine>
<store_title_spindle>Broche</store_title_spindle>
@@ -328,6 +333,7 @@
<tooling_family_param_reviveDelta>Δ Dressage out.</tooling_family_param_reviveDelta>
<siemens_tooling_equipment_cedgepar_id>Id Tranchant</siemens_tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_id>Id Offset</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_unitOfMeasure>Unité de mesure</tooling_equipment_cedgepar_unitOfMeasure>
<tooling_equipment_cedgepar_residualLife>Vie Résiduelle</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>Vie Nominale</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>Limite de Préalarme</tooling_equipment_cedgepar_preAlmLife>
@@ -372,10 +378,13 @@
<tooling_equipment_cedgepar_corrAngle>Angle de Correction</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Longueur Bras</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>Rayon Sphère</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_cedgepar_realRadius>Rayon Réel</tooling_equipment_cedgepar_realRadius>
<tooling_equipment_cedgepar_realLength>Longueur Réelle</tooling_equipment_cedgepar_realLength>
<tooling_equipment_list_select_none>Aucune sélection</tooling_equipment_list_select_none>
<tooling_equipment_list_select_generic>Générique</tooling_equipment_list_select_generic>
<tooling_equipment_list_select_timeLife>À Temps</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>À Compteur</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_distanceLife>À Distance</tooling_equipment_list_select_distanceLife>
<tooling_equipment_list_select_wearLife>À Usure</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Rot. Horaire</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Rot. Antihoraire</tooling_equipment_list_select_counterClockWhise>
@@ -445,6 +454,26 @@
<tooling_equipment_list_select_radioProbe2.2>Radio Probe 2 - Récepteur 2</tooling_equipment_list_select_radioProbe2.2>
<tooling_equipment_list_select_radioProbe2.3>Radio Probe 3 - Récepteur 2</tooling_equipment_list_select_radioProbe2.3>
<tooling_equipment_list_select_radioProbe2.4>Radio Probe 4 - Récepteur 2</tooling_equipment_list_select_radioProbe2.4>
<tooling_equipment_list_select_diskUltrasound10>Disque à ultrasons, amplitude 10%%</tooling_equipment_list_select_diskUltrasound10>
<tooling_equipment_list_select_diskUltrasound20>Disque à ultrasons, amplitude 20%%</tooling_equipment_list_select_diskUltrasound20>
<tooling_equipment_list_select_diskUltrasound30>Disque à ultrasons, amplitude 30%%</tooling_equipment_list_select_diskUltrasound30>
<tooling_equipment_list_select_diskUltrasound40>Disque à ultrasons, amplitude 40%%</tooling_equipment_list_select_diskUltrasound40>
<tooling_equipment_list_select_diskUltrasound50>Disque à ultrasons, amplitude 50%%</tooling_equipment_list_select_diskUltrasound50>
<tooling_equipment_list_select_diskUltrasound60>Disque à ultrasons, amplitude 60%%</tooling_equipment_list_select_diskUltrasound60>
<tooling_equipment_list_select_diskUltrasound70>Disque à ultrasons, amplitude 70%%</tooling_equipment_list_select_diskUltrasound70>
<tooling_equipment_list_select_diskUltrasound80>Disque à ultrasons, amplitude 80%%</tooling_equipment_list_select_diskUltrasound80>
<tooling_equipment_list_select_diskUltrasound90>Disque à ultrasons, amplitude 90%%</tooling_equipment_list_select_diskUltrasound90>
<tooling_equipment_list_select_diskUltrasound100>Disque à ultrasons, amplitude 100%%</tooling_equipment_list_select_diskUltrasound100>
<tooling_equipment_list_select_bladeUltrasound10>Lame à ultrasons, amplitude 10%%</tooling_equipment_list_select_bladeUltrasound10>
<tooling_equipment_list_select_bladeUltrasound20>Lame à ultrasons, amplitude 20%%</tooling_equipment_list_select_bladeUltrasound20>
<tooling_equipment_list_select_bladeUltrasound30>Lame à ultrasons, amplitude 30%%</tooling_equipment_list_select_bladeUltrasound30>
<tooling_equipment_list_select_bladeUltrasound40>Lame à ultrasons, amplitude 40%%</tooling_equipment_list_select_bladeUltrasound40>
<tooling_equipment_list_select_bladeUltrasound50>Lame à ultrasons, amplitude 50%%</tooling_equipment_list_select_bladeUltrasound50>
<tooling_equipment_list_select_bladeUltrasound60>Lame à ultrasons, amplitude 60%%</tooling_equipment_list_select_bladeUltrasound60>
<tooling_equipment_list_select_bladeUltrasound70>Lame à ultrasons, amplitude 70%%</tooling_equipment_list_select_bladeUltrasound70>
<tooling_equipment_list_select_bladeUltrasound80>Lame à ultrasons, amplitude 80%%</tooling_equipment_list_select_bladeUltrasound80>
<tooling_equipment_list_select_bladeUltrasound90>Lame à ultrasons, amplitude 90%%</tooling_equipment_list_select_bladeUltrasound90>
<tooling_equipment_list_select_bladeUltrasound100>Lame à ultrasons, amplitude 100%%</tooling_equipment_list_select_bladeUltrasound100>
<modal_confirm_title>Demande de confirmation</modal_confirm_title>
<modal_ok_button>Ok</modal_ok_button>
<modal_cancel_button>Annuler</modal_cancel_button>
@@ -457,6 +486,7 @@
<siemens_modal_confirm_delete_shank>Voulez-vous vraiment éliminer l&#39;outil multifonctionnel ?</siemens_modal_confirm_delete_shank>
<modal_confirm_delete_tool_inshank>Voulez-vous vraiment éliminer l&#39;outil de la queue ?</modal_confirm_delete_tool_inshank>
<siemens_modal_confirm_delete_tool_inshank>Voulez-vous vraiment éliminer l&#39;outil de l&#39;outil multifonctionnel ?</siemens_modal_confirm_delete_tool_inshank>
<modal_confirm_delete_alarms>Voulez-vous vraiment éliminer toutes les alarmes?</modal_confirm_delete_alarms>
<modal_confirm_perform_maintenance>Voulez-vous vraiment éliminer cette intervention de maintenance ?</modal_confirm_perform_maintenance>
<modal_confirm_delete_family>Voulez-vous vraiment éliminer la famille ?</modal_confirm_delete_family>
<maintenance_header_title>Gestionnaire Maintenance</maintenance_header_title>
@@ -512,9 +542,15 @@
<production_box_video_button_cnc>NC</production_box_video_button_cnc>
<production_box_video_button_prod>Prod.</production_box_video_button_prod>
<production_softkeys_prefered_header_title>Touches Favorites</production_softkeys_prefered_header_title>
<card_axes_production_axes_tab_interp>Interp.</card_axes_production_axes_tab_interp>
<card_axes_production_axes_tab_om>Absol.</card_axes_production_axes_tab_om>
<card_axes_production_axes_tab_goto>To-Go</card_axes_production_axes_tab_goto>
<card_axes_production_axes_tab_prog>Prog.</card_axes_production_axes_tab_prog>
<card_production_rapid>Rapid:</card_production_rapid>
<card_production_work>Work:</card_production_work>
<card_job_production_offset_length>Longueur réelle:</card_job_production_offset_length>
<card_job_production_offset_radius>Rayon réel:</card_job_production_offset_radius>
<card_job_production_offset_diameter>Diamètre réel:</card_job_production_offset_diameter>
<card_job_production_origin>Origine active :</card_job_production_origin>
<card_job_production_offset>Correcteur actif :</card_job_production_offset>
<siemens_card_job_production_offset>Tranchant actif :</siemens_card_job_production_offset>
@@ -522,6 +558,8 @@
<card_job_production_message>Message:</card_job_production_message>
<production_label_select_prg>Sélectionner un programme</production_label_select_prg>
<production_label_select_auto_mode>Sélectionner le mode Auto pour exécuter un programme</production_label_select_auto_mode>
<production_softkeys_prefered_sel_in_progr>Sélection en cours</production_softkeys_prefered_sel_in_progr>
<button_production_go_to_selection>Aller à la sélection</button_production_go_to_selection>
<modal_load_program_lbl_title_window>Chargeur de programme</modal_load_program_lbl_title_window>
<modal_load_program_lbl_box_select_program>Sélectionner un programme</modal_load_program_lbl_box_select_program>
<modal_load_program_btn_upload_program>Charger et activer</modal_load_program_btn_upload_program>
@@ -569,7 +607,7 @@
<users_table_header_lastname>Nom</users_table_header_lastname>
<users_table_header_language>Langue</users_table_header_language>
<users_table_header_role>Fonction</users_table_header_role>
<footer_tooltip_production>Responsable de la 0rpoduction</footer_tooltip_production>
<footer_tooltip_production>Responsable de la poduction</footer_tooltip_production>
<footer_tooltip_tooling>Gestionnaire d&#39;outils</footer_tooltip_tooling>
<footer_tooltip_maintenance>Responsable de la maintenance de la machine</footer_tooltip_maintenance>
<footer_tooltip_alarms>Historique des alarmes</footer_tooltip_alarms>
+662
View File
@@ -0,0 +1,662 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Automatically generated by lucio.maranta: 2019-07-03 -->
<root>
<language_it>Hrvatski</language_it>
<header_maintainance_request>Izvršiti održavanje</header_maintainance_request>
<support_summary>Rok:</support_summary>
<header_maintainance_request_explanation>Ima neki postupak za izvršiti</header_maintainance_request_explanation>
<alarm_ribbon_title_more_items>Ima %d aktivnih alarma</alarm_ribbon_title_more_items>
<warning_ribbon_title_more_items>Ima %d aktivnih warninga</warning_ribbon_title_more_items>
<process_label_name>Postupak</process_label_name>
<userinfo_lbl_title>Korisničke Postavke</userinfo_lbl_title>
<userinfo_btn_logout>Log out</userinfo_btn_logout>
<userinfo_lbl_language>Jezik</userinfo_lbl_language>
<userinfo_btn_cancel>Poništi</userinfo_btn_cancel>
<userinfo_btn_save>Spremi</userinfo_btn_save>
<login_lbl_title>Login korisnika</login_lbl_title>
<login_lbl_username>Korisničko ime</login_lbl_username>
<login_lbl_password>Lozinka</login_lbl_password>
<login_btn_login>Log in</login_btn_login>
<login_lbl_invalidusername>Pogrešno korisničko ime</login_lbl_invalidusername>
<login_lbl_invalidpassword>Pogrešna lozinka</login_lbl_invalidpassword>
<alarms_btn_history_show>Vidi povijest alarma</alarms_btn_history_show>
<alarms_refresh_all>Refresh sve</alarms_refresh_all>
<alarm_item_btn_show>Vidi</alarm_item_btn_show>
<alarm_ribbon_title_1_item>Alarm</alarm_ribbon_title_1_item>
<warning_ribbon_title_1_item>Warning</warning_ribbon_title_1_item>
<alarm_detail_lbl_status>Stanje</alarm_detail_lbl_status>
<alarm_manual_lbl_title>Postupak obnove</alarm_manual_lbl_title>
<alarm_manual_lbl_description>Rješenje alarma</alarm_manual_lbl_description>
<alarm_manual_btn_start>Pokreni</alarm_manual_btn_start>
<alarm_detail_btn_show_manual>Vidi Priručnik</alarm_detail_btn_show_manual>
<alarm_detail_btn_ask_help>Traži Pomoć</alarm_detail_btn_ask_help>
<alarm_detail_btn_refresh>Refresh</alarm_detail_btn_refresh>
<alarm_btn_back_to_list>Vrati se na listu</alarm_btn_back_to_list>
<alarm_status_active>Aktivno</alarm_status_active>
<alarm_status_deleted>Otklonjeno</alarm_status_deleted>
<alarm_btn_add_attach>Dodaj privitak</alarm_btn_add_attach>
<machineinfo_lbl_title>Informacije o Stroju</machineinfo_lbl_title>
<machine_serial_number>Matični br.:</machine_serial_number>
<machine_installation_date>Datum ugradnje:</machine_installation_date>
<machineinfo_model_nc>Cn Model:</machineinfo_model_nc>
<machineinfo_serial_nc>Cn Serijski broj:</machineinfo_serial_nc>
<machineinfo_firmware_version>Verzija Cn firmware:</machineinfo_firmware_version>
<machineinfo_plc_version>Verzija Plc:</machineinfo_plc_version>
<machineinfo_current_language>Cn odabrani jezik:</machineinfo_current_language>
<machineinfo_processes>Broj Cn procesa:</machineinfo_processes>
<machineinfo_datetime>Time-Stamp Cn:</machineinfo_datetime>
<machineinfo_umeas>Cn jedinica mjere:</machineinfo_umeas>
<machineinfo_server_cms_version>Verzija Server CMS-Active:</machineinfo_server_cms_version>
<machineinfo_core_cms_version>Verzija Core CMS-Active:</machineinfo_core_cms_version>
<machineinfo_cms_client_version>Verzija Client CMS-Active:</machineinfo_cms_client_version>
<machineinfo_cms_dateformat>Format datuma CMS-Active:</machineinfo_cms_dateformat>
<machineinfo_server_scm_version>Verzija Server Maestro-Active:</machineinfo_server_scm_version>
<machineinfo_core_scm_version>Verzija Core Maestro-Active:</machineinfo_core_scm_version>
<machineinfo_scm_client_version>Verzija Client Maestro-Active:</machineinfo_scm_client_version>
<machineinfo_scm_dateformat>Format datuma Maestro-Active:</machineinfo_scm_dateformat>
<contactinfo_lbl_title>Informacije o kontaktu</contactinfo_lbl_title>
<contact_name>Ime kontakta:</contact_name>
<contact_email>E-mail:</contact_email>
<contact_phoneNumber>Broj telefona:</contact_phoneNumber>
<head_label_rpm>Rpm</head_label_rpm>
<head_label_tool>Alat</head_label_tool>
<head_label_load>Opterećenje</head_label_load>
<head_label_pressure>Mpa</head_label_pressure>
<head_label_abrasive>Brusno sredstvo</head_label_abrasive>
<head_label_gmin>o/min</head_label_gmin>
<head_label_vacuum>Prazno</head_label_vacuum>
<head_label_bar>bar</head_label_bar>
<head_label_feed>Brzina</head_label_feed>
<jog_menu_axis>Os:</jog_menu_axis>
<jog_menu_inc>Povećanje:</jog_menu_inc>
<sfk_category_1>Opće Softkey</sfk_category_1>
<sfk_category_2>Blokiranja / Područja praznine</sfk_category_2>
<sfk_category_3>Agregati / Rashladni uređaji</sfk_category_3>
<sfk_category_4>Načini rada</sfk_category_4>
<sfk_category_5>Lansiranje postupaka / Korisnički programi</sfk_category_5>
<sfk_category_6>Opreme i zaštite</sfk_category_6>
<sfk_category_7>Ukrcaj / Iskrcaj</sfk_category_7>
<softkey_confirm>Jesi li siguran?</softkey_confirm>
<confirm_request_confirm>Potvrdi</confirm_request_confirm>
<confirm_request_cancel>Poništi</confirm_request_cancel>
<plc_softkeys_item_selected>odabrani elementi</plc_softkeys_item_selected>
<plc_softkeys_close_selection>Završi odabir</plc_softkeys_close_selection>
<modal_m155_hide_window>Sakri Prozor</modal_m155_hide_window>
<modal_m155_title>Poruka iz procesa %d</modal_m155_title>
<modal_m155_value>Vrijednost:</modal_m155_value>
<utilities_header_label>Vanjski Software &#38; Utility</utilities_header_label>
<modal_nochangepage_title>Nemoguća radnja</modal_nochangepage_title>
<modal_nochangepage_message>Završi viseće radnje prije korištenja drugih aplikacija</modal_nochangepage_message>
<modal_confirm_close_application>Jesi li siguran da želiš zatvoriti Active?</modal_confirm_close_application>
<modal_nocloseapp_title>Nemoguća radnja</modal_nocloseapp_title>
<modal_nocloseapp_message>Završi viseće radnje prije zatvaranja Active</modal_nocloseapp_message>
<hmi_cmd_demo_1>Nc podaci</hmi_cmd_demo_1>
<hmi_cmd_demo_2>Nc postupci</hmi_cmd_demo_2>
<hmi_cmd_demo_3>Alarmi</hmi_cmd_demo_3>
<hmi_cmd_demo_4>Osi</hmi_cmd_demo_4>
<hmi_cmd_demo_5>Byte-Memory</hmi_cmd_demo_5>
<hmi_cmd_demo_6>Programi</hmi_cmd_demo_6>
<hmi_cmd_demo_7>Skladišta</hmi_cmd_demo_7>
<hmi_cmd_demo_8>Familije / Dršci</hmi_cmd_demo_8>
<hmi_cmd_demo_9>Alati</hmi_cmd_demo_9>
<hmi_cmd_siemens_1>Stroj</hmi_cmd_siemens_1>
<hmi_cmd_siemens_2>Parametri</hmi_cmd_siemens_2>
<hmi_cmd_siemens_3>Program</hmi_cmd_siemens_3>
<hmi_cmd_siemens_4>Prog. Manager</hmi_cmd_siemens_4>
<hmi_cmd_siemens_5>Dijagnostika</hmi_cmd_siemens_5>
<hmi_cmd_siemens_6>Stavljanje u službu</hmi_cmd_siemens_6>
<hmi_cmd_fanuc_1>Pos</hmi_cmd_fanuc_1>
<hmi_cmd_fanuc_2>Prog</hmi_cmd_fanuc_2>
<hmi_cmd_fanuc_3>Ofst</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>Sys</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>Msg</hmi_cmd_fanuc_5>
<hmi_cmd_fanuc_6>Mgi</hmi_cmd_fanuc_6>
<tooling_title_label>Upravljač Alata</tooling_title_label>
<store_title_magazine>Skladište</store_title_magazine>
<store_title_spindle>Stezna glava</store_title_spindle>
<launch_tools>Alati</launch_tools>
<launch_shanks>Dršci</launch_shanks>
<siemens_launch_shanks>Multitools</siemens_launch_shanks>
<launch_hands>Konfiguracija Stezača Alata</launch_hands>
<launch_families>Familije</launch_families>
<siemens_launch_families>Grupa alata</siemens_launch_families>
<tooling_equipment_label_box>Upravljanje Alatima</tooling_equipment_label_box>
<tooling_magazine_label>Opreme skladišta:</tooling_magazine_label>
<tooling_magazine_selfadaptivepath_step>Step autoadaptivni put</tooling_magazine_selfadaptivepath_step>
<tooling_magazine_export_label>Izvoz alata</tooling_magazine_export_label>
<tooling_magazine_import_label>Uvoz alata</tooling_magazine_import_label>
<tooling_tables_label>Alait &#38; Konfiguracije:</tooling_tables_label>
<tooling_equipment_label_search>Odaberi alat:</tooling_equipment_label_search>
<tooling_equipment_label_add>Kreiraj novi alat</tooling_equipment_label_add>
<tooling_equipment_button_modify>Izmjena</tooling_equipment_button_modify>
<tooling_equipment_button_cancel>Poništi</tooling_equipment_button_cancel>
<tooling_equipment_button_save>Spremi</tooling_equipment_button_save>
<tooling_equipment_button_add>Dodaj</tooling_equipment_button_add>
<tooling_edgesdataequip_skill_tools>Offset</tooling_edgesdataequip_skill_tools>
<siemens_tooling_edgesdataequip_skill_tools>Oštrica</siemens_tooling_edgesdataequip_skill_tools>
<tooling_edgesdataequip_new>Novi Offset</tooling_edgesdataequip_new>
<siemens_tooling_edgesdataequip_new>Nova Oštrica</siemens_tooling_edgesdataequip_new>
<tooling_parameters_tab>Parametri</tooling_parameters_tab>
<tooling_equipment_editlabel>Preinaka alata br. %d</tooling_equipment_editlabel>
<tooling_equipment_newlabel>Kreiranje Novog Alata</tooling_equipment_newlabel>
<tooling_edgesdata_label_edit>Izmjena Offset-a br. %d</tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_edit>Izmjena Oštrice br. %d</siemens_tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_new>Kreiranje nove Oštrice</siemens_tooling_edgesdata_label_new>
<tooling_edgesdata_label_new>Udruživanje novog Offseta</tooling_edgesdata_label_new>
<tooling_shanks_label_box>Upravljanje Dršcima</tooling_shanks_label_box>
<tooling_shanks_label_search>Odaberi neki Držak:</tooling_shanks_label_search>
<tooling_shanks_label_add>Kreiraj novi Držak</tooling_shanks_label_add>
<tooling_shanks_name>Držak %d</tooling_shanks_name>
<siemens_tooling_shanks_label_box>Upravljanje Multitool-om</siemens_tooling_shanks_label_box>
<siemens_tooling_shanks_label_search>Odaberi neki Multitool:</siemens_tooling_shanks_label_search>
<siemens_tooling_shanks_label_add>Kreiraj novi Multitool</siemens_tooling_shanks_label_add>
<siemens_tooling_shanks_name>Multitool %d</siemens_tooling_shanks_name>
<tooling_childtoolsshanks_skill_tools>Alat %d</tooling_childtoolsshanks_skill_tools>
<tooling_childtoolsshanks_new>Novi Alat</tooling_childtoolsshanks_new>
<tooling_shanks_editlabel>Izmjena drška br. %d</tooling_shanks_editlabel>
<siemens_tooling_shanks_editlabel>Izmjena multitool-a br. %d</siemens_tooling_shanks_editlabel>
<tooling_childtoolsshank_select_tool>Odabir alata za dodavanje dršku</tooling_childtoolsshank_select_tool>
<siemens_tooling_childtoolsshank_select_tool>Odabir alata za dodavanje Multitool-u</siemens_tooling_childtoolsshank_select_tool>
<tooling_shanks_label_new>Kreiranje novog Drška</tooling_shanks_label_new>
<siemens_tooling_shanks_label_new>Kreiranje novog Multitool-a</siemens_tooling_shanks_label_new>
<tooling_shanks_edittoollabel>Izmjena alata %d Drška %d</tooling_shanks_edittoollabel>
<siemens_tooling_shanks_edittoollabel>Izmjena alata %d Multitool-a %d</siemens_tooling_shanks_edittoollabel>
<tooling_magpos_label_box>Upravljanje Stezačima Alata skladišta</tooling_magpos_label_box>
<tooling_magpos_label_search>Odaberi stazač alata:</tooling_magpos_label_search>
<tooling_magpos>Pos</tooling_magpos>
<tooling_magazine>Skladište</tooling_magazine>
<tooling_magpos_editlabel>Izmjena položaja br. %d skladišta %s</tooling_magpos_editlabel>
<tooling_families_label_box>Upravljanje Familijama</tooling_families_label_box>
<siemens_tooling_families_label_box>Upravljanje Grupama alata</siemens_tooling_families_label_box>
<tooling_families_label_search>Odaberi neku familiju:</tooling_families_label_search>
<siemens_tooling_families_label_search>Odaberi neku grupu:</siemens_tooling_families_label_search>
<tooling_families_boxright_editlabel>Izmjena familije %s</tooling_families_boxright_editlabel>
<tooling_families_boxright_newlabel>Kreiranje nove familije</tooling_families_boxright_newlabel>
<siemens_tooling_families_boxright_editlabel>Izmjena grupe %s</siemens_tooling_families_boxright_editlabel>
<siemens_tooling_families_boxright_newlabel>Kreiranje nove grupe</siemens_tooling_families_boxright_newlabel>
<tooling_childtoolsfamily_skill_tools>Alat %d</tooling_childtoolsfamily_skill_tools>
<siemens_tooling_childtoolsfamily_skill_tools>Duplo %d</siemens_tooling_childtoolsfamily_skill_tools>
<tooling_childtoolsfamily_boxright_editlabel>Izmjena alata %d familije %s</tooling_childtoolsfamily_boxright_editlabel>
<siemens_tooling_childtoolsfamily_boxright_editlabel>Izmjena alata %d grupe %s</siemens_tooling_childtoolsfamily_boxright_editlabel>
<tooling_equipment_search_placeholder>Traženje alata po id-u</tooling_equipment_search_placeholder>
<siemens_tooling_equipment_search_placeholder>Traženje alata po imenu</siemens_tooling_equipment_search_placeholder>
<tooling_shank_search_placeholder>Traženje drška po id-u</tooling_shank_search_placeholder>
<siemens_tooling_shank_search_placeholder>Traženje Multitool-a po imenu</siemens_tooling_shank_search_placeholder>
<tooling_magpos_search_placeholder>Traženje stezača alata po Id-u</tooling_magpos_search_placeholder>
<tooling_families_search_placeholder>Traženje familije po imenu</tooling_families_search_placeholder>
<siemens_tooling_families_search_placeholder>Traženje grupe alata po imenu</siemens_tooling_families_search_placeholder>
<tooling_magazine_abbreviation>MA%d</tooling_magazine_abbreviation>
<tooling_shank_abbreviation>S%d</tooling_shank_abbreviation>
<tooling_tool_abbreviation>T%d</tooling_tool_abbreviation>
<siemens_tooling_tool_abbreviation>ST%d</siemens_tooling_tool_abbreviation>
<siemens_tooling_shank_abbreviation>M%d</siemens_tooling_shank_abbreviation>
<tooling_family_abbreviation>F%d</tooling_family_abbreviation>
<tooling_magpos_abbreviation>P%d</tooling_magpos_abbreviation>
<depot_button_cancel>Završi izmjene</depot_button_cancel>
<depot_button_modify>Izmjena</depot_button_modify>
<depot_checkbox_viewstate_equipment>Prikaži stanje alata</depot_checkbox_viewstate_equipment>
<depot_label_search>Odaberi neki alat i odvuci ga u odgovarajući položaj</depot_label_search>
<depot_search_placeholder>Potraži neki alat po imenu</depot_search_placeholder>
<depot_avaiable_position>Raspoloživi položaj</depot_avaiable_position>
<load_depot_lbl_title>Ukrcaj alat</load_depot_lbl_title>
<load_depot_lbl_select>Odaberi alat za ukrcavanje</load_depot_lbl_select>
<load_depot_select_title>Alat</load_depot_select_title>
<load_depot_btn_cancel>Poništi</load_depot_btn_cancel>
<load_depot_btn_confirm>Ukrcaj</load_depot_btn_confirm>
<toolinginfo_edit_button>Izmjena Alata</toolinginfo_edit_button>
<toolinginfo_explain_lbl>Završi opremanje skladišta radi izmjene alata</toolinginfo_explain_lbl>
<modal_add_offset_tool_position>Položaj</modal_add_offset_tool_position>
<modal_add_offset_tool_id>Id Offset</modal_add_offset_tool_id>
<modal_add_offset_tool_abbreviation>Offset %d</modal_add_offset_tool_abbreviation>
<tooling_families_label_add>Kreiraj novu familiju</tooling_families_label_add>
<load_depot_error_fit>Premalo prostora za ukrcavanje tog alata</load_depot_error_fit>
<depot_action_loading_header>Ukrcavanje Alata</depot_action_loading_header>
<depot_action_unloading_header>Iskrcavanje Alata</depot_action_unloading_header>
<depot_action_transfer_header>Prijenos Alata</depot_action_transfer_header>
<depot_action_generic_header>Tool-Manager Zauzet</depot_action_generic_header>
<depot_action_generic_text>Neka radnja blokira upravljač alata…</depot_action_generic_text>
<depot_action_magazine_label>Skladište %d</depot_action_magazine_label>
<depot_action_magazine_position>Pol. %d</depot_action_magazine_position>
<tooling_equipment_list_category_general>Opći podaci:</tooling_equipment_list_category_general>
<siemens_tooling_equipment_list_category_family>Grupa - Alati:</siemens_tooling_equipment_list_category_family>
<tooling_equipment_list_category_family>Familija:</tooling_equipment_list_category_family>
<tooling_equipment_list_category_state>Stanje Alata:</tooling_equipment_list_category_state>
<tooling_equipment_list_category_cooling>Rashladno sredstvo:</tooling_equipment_list_category_cooling>
<tooling_equipment_list_category_magazine>Skladište:</tooling_equipment_list_category_magazine>
<tooling_equipment_list_category_head>Stazna glava:</tooling_equipment_list_category_head>
<tooling_equipment_list_category_life>Život:</tooling_equipment_list_category_life>
<tooling_equipment_list_category_geometry>Geometrija:</tooling_equipment_list_category_geometry>
<tooling_shanks_list_category_general>Opći:</tooling_shanks_list_category_general>
<tooling_shanks_list_category_state>Stanje Drška:</tooling_shanks_list_category_state>
<siemens_tooling_shanks_list_category_state>Stanje Multitoola:</siemens_tooling_shanks_list_category_state>
<tooling_shanks_list_category_magazine>Skladište:</tooling_shanks_list_category_magazine>
<tooling_magpos_list_category_general>Opći:</tooling_magpos_list_category_general>
<tooling_families_list_category_general>Opći:</tooling_families_list_category_general>
<tooling_families_list_category_gamma>Gamma Inverter:</tooling_families_list_category_gamma>
<tooling_families_list_category_magazine>Skladište:</tooling_families_list_category_magazine>
<tooling_equipment_list_category_status>Stanje Alata:</tooling_equipment_list_category_status>
<tooling_equipment_list_category_offset>Offset:</tooling_equipment_list_category_offset>
<tooling_shanks_list_category_balluf>Rfid:</tooling_shanks_list_category_balluf>
<tooling_shanks_list_category_magPosType>Zahtjevana vrsta položaja:</tooling_shanks_list_category_magPosType>
<tooling_shanks_list_category_position>Položaj:</tooling_shanks_list_category_position>
<tooling_families_list_category_dynamicCompensation>Dinačka Kompenzacija:</tooling_families_list_category_dynamicCompensation>
<tooling_families_list_category_tcp>Tablica TCP:</tooling_families_list_category_tcp>
<tooling_families_list_category_cooling>Rashladno sredstvo:</tooling_families_list_category_cooling>
<tooling_families_list_category_limits>Granice:</tooling_families_list_category_limits>
<tooling_families_list_category_selfAdaptive>Autoadaptivni put:</tooling_families_list_category_selfAdaptive>
<tooling_families_list_category_life>Život:</tooling_families_list_category_life>
<tooling_families_list_category_revive>Oživljavanje:</tooling_families_list_category_revive>
<tooling_equipment_list_category_limits>Granice:</tooling_equipment_list_category_limits>
<tooling_equipment_list_category_revive>Oživljavanje:</tooling_equipment_list_category_revive>
<tooling_equipment_list_category_dynamicCompensation>Dinačka Kompenzacija:</tooling_equipment_list_category_dynamicCompensation>
<tooling_equipment_list_category_tcp>Tablica TCP:</tooling_equipment_list_category_tcp>
<tooling_equipment_list_category_selfAdaptive>Autoadaptivni put:</tooling_equipment_list_category_selfAdaptive>
<tooling_equipment_param_id>Id Alata</tooling_equipment_param_id>
<tooling_equipment_param_toolType>Tip Alata</tooling_equipment_param_toolType>
<tooling_equipment_param_lifeType>Tip života</tooling_equipment_param_lifeType>
<tooling_equipment_param_familyName>Ime</tooling_equipment_param_familyName>
<tooling_equipment_param_name>Ime</tooling_equipment_param_name>
<tooling_equipment_param_childId>Id dijeteta</tooling_equipment_param_childId>
<tooling_equipment_param_multitoolId>Multitool Id</tooling_equipment_param_multitoolId>
<tooling_equipment_param_isEnabled>Alat Osposobljen</tooling_equipment_param_isEnabled>
<tooling_equipment_param_isActive>Alat Aktivan</tooling_equipment_param_isActive>
<tooling_equipment_param_isInhibited>Alat Inhibiran</tooling_equipment_param_isInhibited>
<tooling_equipment_param_inFixedPlace>Alat u fiksnom pol</tooling_equipment_param_inFixedPlace>
<tooling_equipment_param_isMeasured>Alat Izmjeren</tooling_equipment_param_isMeasured>
<tooling_equipment_param_inChangeTool>Alat u CU</tooling_equipment_param_inChangeTool>
<tooling_equipment_param_isInUse>Alat u Upotrebi</tooling_equipment_param_isInUse>
<tooling_equipment_param_preAlarm>Alat u Predalarmu</tooling_equipment_param_preAlarm>
<tooling_equipment_param_cooling>Glavno Hlađenje</tooling_equipment_param_cooling>
<tooling_equipment_param_cooling1>Hlađenje 1</tooling_equipment_param_cooling1>
<tooling_equipment_param_cooling2>Hlađenje 2</tooling_equipment_param_cooling2>
<tooling_equipment_param_cooling3>Hlađenje 3</tooling_equipment_param_cooling3>
<tooling_equipment_param_cooling4>Hlađenje 4</tooling_equipment_param_cooling4>
<tooling_equipment_param_cooling5>Hlađenje 5</tooling_equipment_param_cooling5>
<tooling_equipment_param_cooling6>Hlađenje 6</tooling_equipment_param_cooling6>
<tooling_equipment_param_cooling7>Hlađenje 7</tooling_equipment_param_cooling7>
<tooling_equipment_param_magazinePositionType>Tip stezača</tooling_equipment_param_magazinePositionType>
<tooling_equipment_param_leftSize>Dimnezija Lijevo</tooling_equipment_param_leftSize>
<tooling_equipment_param_rightSize>Dimnezija Desno</tooling_equipment_param_rightSize>
<tooling_equipment_param_rotation>Tip Rotacije</tooling_equipment_param_rotation>
<tooling_equipment_param_maxSpeed>Maksimalna Brzina</tooling_equipment_param_maxSpeed>
<tooling_equipment_param_maxAcceleration>Maksimalno Ubrzanje</tooling_equipment_param_maxAcceleration>
<tooling_equipment_param_magpos_magazineId>Id Skl.</tooling_equipment_param_magpos_magazineId>
<tooling_equipment_param_magpos_positionId>Položaj</tooling_equipment_param_magpos_positionId>
<tooling_equipment_param_magpos_type>Tip</tooling_equipment_param_magpos_type>
<tooling_equipment_param_magpos_physicalType>Mehanički tip</tooling_equipment_param_magpos_physicalType>
<tooling_equipment_param_magpos_disabled>Onesposobljeno</tooling_equipment_param_magpos_disabled>
<tooling_equipment_param_position>Položaj</tooling_equipment_param_position>
<tooling_equipment_param_shankId>Id Drška</tooling_equipment_param_shankId>
<tooling_equipment_param_familyId>Id Familije</tooling_equipment_param_familyId>
<tooling_equipment_param_offsetLength>Offset Dužine</tooling_equipment_param_offsetLength>
<tooling_equipment_param_residualLife>Ostatak Života</tooling_equipment_param_residualLife>
<tooling_equipment_param_disabled>Alat onesposobljen</tooling_equipment_param_disabled>
<tooling_equipment_param_broken>Alat slomljen</tooling_equipment_param_broken>
<tooling_equipment_param_measured>Alat izmjeren</tooling_equipment_param_measured>
<tooling_equipment_param_clockwiseRotation>Rotacija u Smjeru kazaljke na satu</tooling_equipment_param_clockwiseRotation>
<tooling_equipment_param_counterClockwiseRotation>Rotacija Suprotnom smjeru kazaljke na satu</tooling_equipment_param_counterClockwiseRotation>
<tooling_equipment_param_offsetId1>Id Offset 1</tooling_equipment_param_offsetId1>
<tooling_equipment_param_offsetId2>Id Offset 2</tooling_equipment_param_offsetId2>
<tooling_equipment_param_offsetId3>Id Offset 2</tooling_equipment_param_offsetId3>
<tooling_equipment_param_tcpTable>Id Tabela-Tcp udruženo</tooling_equipment_param_tcpTable>
<tooling_equipment_param_gamma>Gamma Inverter</tooling_equipment_param_gamma>
<tooling_equipment_param_rotationType>Tip rotacije</tooling_equipment_param_rotationType>
<tooling_equipment_param_maxLoad>Maksimalno moguće Opterećenje</tooling_equipment_param_maxLoad>
<tooling_equipment_param_minLoadPctAutoload>Opterećenje-Min Autoadaptivnog Puta</tooling_equipment_param_minLoadPctAutoload>
<tooling_equipment_param_maxLoadPctAutoload>Opterećenje-Max Autoadaptivnog Puta</tooling_equipment_param_maxLoadPctAutoload>
<tooling_equipment_param_dynamicCompensation>Dinamička Kompenzacija</tooling_equipment_param_dynamicCompensation>
<tooling_equipment_param_minLoadDynamicCompensation>Opterećenje-Min Dinamičke Kompenzacije</tooling_equipment_param_minLoadDynamicCompensation>
<tooling_equipment_param_maxLoadDynamicCompensation>Opterećenje-Max Dinamičke Kompenzacije</tooling_equipment_param_maxLoadDynamicCompensation>
<tooling_equipment_param_nominalLife>Nominalni Život</tooling_equipment_param_nominalLife>
<tooling_equipment_param_reviveDelta>Δ oživljavanja al.</tooling_equipment_param_reviveDelta>
<tooling_equipment_param_balluf>Rfid Id alata</tooling_equipment_param_balluf>
<tooling_equipment_param_magazineId>Id skladišta</tooling_equipment_param_magazineId>
<tooling_equipment_param_positionId>Položaj</tooling_equipment_param_positionId>
<tooling_equipment_auto_checkbox>Auto</tooling_equipment_auto_checkbox>
<tooling_family_param_name>Ime</tooling_family_param_name>
<tooling_family_param_id>Id Familije</tooling_family_param_id>
<tooling_family_param_toolType>Tip Al.</tooling_family_param_toolType>
<tooling_family_param_leftSize>Dimenzija Lijevo</tooling_family_param_leftSize>
<tooling_family_param_rightSize>Dimenzija Desno</tooling_family_param_rightSize>
<tooling_family_param_gamma>Gamma Inverter</tooling_family_param_gamma>
<tooling_family_param_rotationType>Tip rotacije</tooling_family_param_rotationType>
<tooling_family_param_tcpTable>Id Tabela-Tcp pridružena</tooling_family_param_tcpTable>
<tooling_family_param_maxSpeed>Maksimalna brzina</tooling_family_param_maxSpeed>
<tooling_family_param_maxLoad>Maksimalno krcanje</tooling_family_param_maxLoad>
<tooling_family_param_minLoadPctAutoload>Minimalno krcanje</tooling_family_param_minLoadPctAutoload>
<tooling_family_param_maxLoadPctAutoload>Maksimalno krcanje</tooling_family_param_maxLoadPctAutoload>
<tooling_family_param_dynamicCompensation>Koeficijent Istrošenosti alata</tooling_family_param_dynamicCompensation>
<tooling_family_param_minLoadDynamicCompensation>Minimalno krcanje</tooling_family_param_minLoadDynamicCompensation>
<tooling_family_param_maxLoadDynamicCompensation>Maksimalno krcanje</tooling_family_param_maxLoadDynamicCompensation>
<tooling_family_param_lifeType>Tip Života</tooling_family_param_lifeType>
<tooling_family_param_nominalLife>Nominalni Život</tooling_family_param_nominalLife>
<tooling_family_param_reviveDelta>Δ Oživljavanja alata</tooling_family_param_reviveDelta>
<siemens_tooling_equipment_cedgepar_id>Id Oštrice</siemens_tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_id>Id Offset</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_unitOfMeasure>Jedinica mjere</tooling_equipment_cedgepar_unitOfMeasure>
<tooling_equipment_cedgepar_residualLife>Ostatak Života</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>Nominalni Život</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>Granica Predalarma</tooling_equipment_cedgepar_preAlmLife>
<tooling_equipment_cedgepar_cuttingEdge>Id Oštrice</tooling_equipment_cedgepar_cuttingEdge>
<tooling_equipment_cedgepar_lenght>Dužina</tooling_equipment_cedgepar_lenght>
<tooling_equipment_cedgepar_length>Dužina</tooling_equipment_cedgepar_length>
<tooling_equipment_cedgepar_radius>Radijus</tooling_equipment_cedgepar_radius>
<tooling_equipment_cedgepar_wearLenght>Istrošenost Dužine</tooling_equipment_cedgepar_wearLenght>
<tooling_equipment_cedgepar_wearLength>Istrošenost Dužine</tooling_equipment_cedgepar_wearLength>
<tooling_equipment_cedgepar_wearRadius>Istrošenost Radijusa</tooling_equipment_cedgepar_wearRadius>
<tooling_equipment_cedgepar_wearDiameter>Istrošenost Promjera</tooling_equipment_cedgepar_wearDiameter>
<tooling_equipment_cedgepar_teeth>Br. Zuba</tooling_equipment_cedgepar_teeth>
<tooling_equipment_cedgepar_cornerRadius>Radijus Kutnog Priključka</tooling_equipment_cedgepar_cornerRadius>
<tooling_equipment_cedgepar_geomLenght1>Geometrijska Dužina Al. 1</tooling_equipment_cedgepar_geomLenght1>
<tooling_equipment_cedgepar_geomLenght2>Geometrijska Dužina Al. 2</tooling_equipment_cedgepar_geomLenght2>
<tooling_equipment_cedgepar_geomLenght3>Geometrijska Dužina Al. 3</tooling_equipment_cedgepar_geomLenght3>
<tooling_equipment_cedgepar_geomDeltaLenght1>Δ Dužine Al. 1</tooling_equipment_cedgepar_geomDeltaLenght1>
<tooling_equipment_cedgepar_geomDeltaLenght2>Δ Dužine Al. 2</tooling_equipment_cedgepar_geomDeltaLenght2>
<tooling_equipment_cedgepar_geomDeltaLenght3>Δ Dužine Al. 3</tooling_equipment_cedgepar_geomDeltaLenght3>
<tooling_equipment_cedgepar_adapterLenght1>Dužina Adaptera 1</tooling_equipment_cedgepar_adapterLenght1>
<tooling_equipment_cedgepar_adapterLenght2>Dužina Adaptera 2</tooling_equipment_cedgepar_adapterLenght2>
<tooling_equipment_cedgepar_adapterLenght3>Dužina Adaptera 3</tooling_equipment_cedgepar_adapterLenght3>
<tooling_equipment_cedgepar_v>V</tooling_equipment_cedgepar_v>
<tooling_equipment_cedgepar_vector1>Vektor 1</tooling_equipment_cedgepar_vector1>
<tooling_equipment_cedgepar_vector2>Vektor 2</tooling_equipment_cedgepar_vector2>
<tooling_equipment_cedgepar_vector3>Vektor 3</tooling_equipment_cedgepar_vector3>
<tooling_equipment_cedgepar_outsideRadius>Vanjski Radijus</tooling_equipment_cedgepar_outsideRadius>
<tooling_equipment_cedgepar_ToolAngle>Kut Alata</tooling_equipment_cedgepar_ToolAngle>
<tooling_equipment_cedgepar_Width>Širina</tooling_equipment_cedgepar_Width>
<tooling_equipment_cedgepar_taperAngle>Kut Konusa</tooling_equipment_cedgepar_taperAngle>
<tooling_equipment_cedgepar_tipAngle>Kut Vrha</tooling_equipment_cedgepar_tipAngle>
<tooling_equipment_cedgepar_pitch>Korak</tooling_equipment_cedgepar_pitch>
<tooling_equipment_cedgepar_diameter>Promjer</tooling_equipment_cedgepar_diameter>
<tooling_equipment_cedgepar_geomSlotWidth>Širina Utora</tooling_equipment_cedgepar_geomSlotWidth>
<tooling_equipment_cedgepar_geomPrjection>Višak</tooling_equipment_cedgepar_geomPrjection>
<tooling_equipment_cedgepar_geomWearLenght1>Istrošenost Dužine 1</tooling_equipment_cedgepar_geomWearLenght1>
<tooling_equipment_cedgepar_geomWearLenght2>Istrošenost Dužine 2</tooling_equipment_cedgepar_geomWearLenght2>
<tooling_equipment_cedgepar_geomWearLenght3>Istrošenost Dužine 3</tooling_equipment_cedgepar_geomWearLenght3>
<tooling_equipment_cedgepar_WearDiameter>Istrošenost Promjera</tooling_equipment_cedgepar_WearDiameter>
<tooling_equipment_cedgepar_WearSlotWdth>Istrošenost Širine Utora</tooling_equipment_cedgepar_WearSlotWdth>
<tooling_equipment_cedgepar_WearGeomPrjection>Istrošenost Viška</tooling_equipment_cedgepar_WearGeomPrjection>
<tooling_equipment_cedgepar_corrAngle>Kut Korekcije</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Dužina Kraka</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>Radijus Kugle</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_cedgepar_realRadius>Stvarni radijus</tooling_equipment_cedgepar_realRadius>
<tooling_equipment_cedgepar_realLength>Stvarna duljina</tooling_equipment_cedgepar_realLength>
<tooling_equipment_list_select_none>Nema odabira</tooling_equipment_list_select_none>
<tooling_equipment_list_select_generic>Opće</tooling_equipment_list_select_generic>
<tooling_equipment_list_select_timeLife>Po Vremenu</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>Po Brojaču</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_distanceLife>Udaljenost</tooling_equipment_list_select_distanceLife>
<tooling_equipment_list_select_wearLife>Po Istrošenosti</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Rot. u Smjeru Kazaljke na satu</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Rot. Suprotno Smjeru Kazaljke na satu</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_doubleRotation>Svi smjerovi rotacije</tooling_equipment_list_select_doubleRotation>
<tooling_equipment_list_select_millingTool>Al. za glodanje</tooling_equipment_list_select_millingTool>
<tooling_equipment_list_select_ballNoseEndMill>Glo. cil. s kugl. glavom</tooling_equipment_list_select_ballNoseEndMill>
<tooling_equipment_list_select_conicalBallEnd>Glo. kon. s kugl. glavom</tooling_equipment_list_select_conicalBallEnd>
<tooling_equipment_list_select_endMill>Glodalo s drškom</tooling_equipment_list_select_endMill>
<tooling_equipment_list_select_endMillCornerRounding>Glodalo s drškom, za zaob. rubove</tooling_equipment_list_select_endMillCornerRounding>
<tooling_equipment_list_select_angleHeadCutter>Glodalo s kutnom glavom</tooling_equipment_list_select_angleHeadCutter>
<tooling_equipment_list_select_cornRoundAngHdCut>Glodalo kutno za zaob. rubove</tooling_equipment_list_select_cornRoundAngHdCut>
<tooling_equipment_list_select_facingTool>Glodalo za izravnavanje</tooling_equipment_list_select_facingTool>
<tooling_equipment_list_select_threadCutter>Glodalo za narezivanje</tooling_equipment_list_select_threadCutter>
<tooling_equipment_list_select_sideMill>Pločasto glodalo</tooling_equipment_list_select_sideMill>
<tooling_equipment_list_select_saw>Pila</tooling_equipment_list_select_saw>
<tooling_equipment_list_select_bevelledCutter>Konično glodalo</tooling_equipment_list_select_bevelledCutter>
<tooling_equipment_list_select_bevelledCutterCorner>Konično glodalo za zaobljene rubove</tooling_equipment_list_select_bevelledCutterCorner>
<tooling_equipment_list_select_tapDieSinkCutter>Konično glodalo za kalupe</tooling_equipment_list_select_tapDieSinkCutter>
<tooling_equipment_list_select_drillThreadCut>Glodalo za buš./urez.</tooling_equipment_list_select_drillThreadCut>
<tooling_equipment_list_select_twistDrill>Zavojno svrdlo</tooling_equipment_list_select_twistDrill>
<tooling_equipment_list_select_solidDrill>Svrdlo za bušenje na puno</tooling_equipment_list_select_solidDrill>
<tooling_equipment_list_select_boringBar>Alat za horizontalno bušenje</tooling_equipment_list_select_boringBar>
<tooling_equipment_list_select_centerDrill>Zabušivač</tooling_equipment_list_select_centerDrill>
<tooling_equipment_list_select_counterSink>Konični upuštač</tooling_equipment_list_select_counterSink>
<tooling_equipment_list_select_counterBore>Ravni upuštač</tooling_equipment_list_select_counterBore>
<tooling_equipment_list_select_tap>Ureznik</tooling_equipment_list_select_tap>
<tooling_equipment_list_select_fineTap>Ureznik za fini navoj</tooling_equipment_list_select_fineTap>
<tooling_equipment_list_select_tapWhitworth>Ureznik za WW navoj</tooling_equipment_list_select_tapWhitworth>
<tooling_equipment_list_select_reamer>Razvrtač</tooling_equipment_list_select_reamer>
<tooling_equipment_list_select_slottingSaw>Pila za utore</tooling_equipment_list_select_slottingSaw>
<tooling_equipment_list_select_3Dprobe>Mjerni taster 3D</tooling_equipment_list_select_3Dprobe>
<tooling_equipment_list_select_edgeFinder>Taster za rubove</tooling_equipment_list_select_edgeFinder>
<tooling_equipment_list_select_monoProbe>Mono taster</tooling_equipment_list_select_monoProbe>
<tooling_equipment_list_select_lProbe>Taster na L</tooling_equipment_list_select_lProbe>
<tooling_equipment_list_select_starProbe>Zvjezdasti taster</tooling_equipment_list_select_starProbe>
<tooling_equipment_list_select_calibratingTool>Alat za kalibriranje</tooling_equipment_list_select_calibratingTool>
<tooling_equipment_list_select_stop>Graničnik</tooling_equipment_list_select_stop>
<tooling_equipment_list_select_auxiliaryTools>Pomoćni alati</tooling_equipment_list_select_auxiliaryTools>
<tooling_equipment_list_select_newfamily>Dodaj novu familiju</tooling_equipment_list_select_newfamily>
<tooling_equipment_list_select_availfamilies>Raspoložive familije:</tooling_equipment_list_select_availfamilies>
<physical_type_position_select_magazine_location>Stezač alata u skladištu</physical_type_position_select_magazine_location>
<physical_type_position_select_spindle>Stezna glava</physical_type_position_select_spindle>
<physical_type_position_select_gripper>Kliješta</physical_type_position_select_gripper>
<physical_type_position_select_loader>Punjač</physical_type_position_select_loader>
<physical_type_position_select_transfer_location>Prijenosni položaj</physical_type_position_select_transfer_location>
<physical_type_position_select_loading_station>Ukrcajna postaja</physical_type_position_select_loading_station>
<physical_type_position_select_loading_point>Točka ukrcaja</physical_type_position_select_loading_point>
<tooling_equipment_list_select_disk>Disk</tooling_equipment_list_select_disk>
<tooling_equipment_list_select_cutter50>Nožić 50%%</tooling_equipment_list_select_cutter50>
<tooling_equipment_list_select_cutter70>Nožić 70%%</tooling_equipment_list_select_cutter70>
<tooling_equipment_list_select_cutter80>Nožić 80%%</tooling_equipment_list_select_cutter80>
<tooling_equipment_list_select_blade1>List pile 1</tooling_equipment_list_select_blade1>
<tooling_equipment_list_select_blade2>List pile 2</tooling_equipment_list_select_blade2>
<tooling_equipment_list_select_blade3>List pile 3</tooling_equipment_list_select_blade3>
<tooling_equipment_list_select_blade4>List pile 4</tooling_equipment_list_select_blade4>
<tooling_equipment_list_select_blade5>List pile 5</tooling_equipment_list_select_blade5>
<tooling_equipment_list_select_blade6>List pile 6</tooling_equipment_list_select_blade6>
<tooling_equipment_list_select_blade7>List pile 7</tooling_equipment_list_select_blade7>
<tooling_equipment_list_select_blade300>List pile ⌀300</tooling_equipment_list_select_blade300>
<tooling_equipment_list_select_blade400>List pile ⌀400</tooling_equipment_list_select_blade400>
<tooling_equipment_list_select_blade500>List pile ⌀500</tooling_equipment_list_select_blade500>
<tooling_equipment_list_select_radioProbe1.1>Radio Probe 1 - Prijemnik 1</tooling_equipment_list_select_radioProbe1.1>
<tooling_equipment_list_select_radioProbe1.2>Radio Probe 2 - Prijemnik 1</tooling_equipment_list_select_radioProbe1.2>
<tooling_equipment_list_select_radioProbe1.3>Radio Probe 3 - Prijemnik 1</tooling_equipment_list_select_radioProbe1.3>
<tooling_equipment_list_select_radioProbe1.4>Radio Probe 4 - Prijemnik 1</tooling_equipment_list_select_radioProbe1.4>
<tooling_equipment_list_select_radioProbe2.1>Radio Probe 1 - Prijemnik 2</tooling_equipment_list_select_radioProbe2.1>
<tooling_equipment_list_select_radioProbe2.2>Radio Probe 2 - Prijemnik 2</tooling_equipment_list_select_radioProbe2.2>
<tooling_equipment_list_select_radioProbe2.3>Radio Probe 3 - Prijemnik 2</tooling_equipment_list_select_radioProbe2.3>
<tooling_equipment_list_select_radioProbe2.4>Radio Probe 4 - Prijemnik 2</tooling_equipment_list_select_radioProbe2.4>
<tooling_equipment_list_select_diskUltrasound10>Amplituda ultrazvučnog diska 10%%</tooling_equipment_list_select_diskUltrasound10>
<tooling_equipment_list_select_diskUltrasound20>Amplituda ultrazvučnog diska 20%%</tooling_equipment_list_select_diskUltrasound20>
<tooling_equipment_list_select_diskUltrasound30>Amplituda ultrazvučnog diska 30%%</tooling_equipment_list_select_diskUltrasound30>
<tooling_equipment_list_select_diskUltrasound40>Amplituda ultrazvučnog diska 40%%</tooling_equipment_list_select_diskUltrasound40>
<tooling_equipment_list_select_diskUltrasound50>Amplituda ultrazvučnog diska 50%%</tooling_equipment_list_select_diskUltrasound50>
<tooling_equipment_list_select_diskUltrasound60>Amplituda ultrazvučnog diska 60%%</tooling_equipment_list_select_diskUltrasound60>
<tooling_equipment_list_select_diskUltrasound70>Amplituda ultrazvučnog diska 70%%</tooling_equipment_list_select_diskUltrasound70>
<tooling_equipment_list_select_diskUltrasound80>Amplituda ultrazvučnog diska 80%%</tooling_equipment_list_select_diskUltrasound80>
<tooling_equipment_list_select_diskUltrasound90>Amplituda ultrazvučnog diska 90%%</tooling_equipment_list_select_diskUltrasound90>
<tooling_equipment_list_select_diskUltrasound100>Amplituda ultrazvučnog diska 100%%</tooling_equipment_list_select_diskUltrasound100>
<tooling_equipment_list_select_bladeUltrasound10>Amplituda ultrazvučne oštrice 10%%</tooling_equipment_list_select_bladeUltrasound10>
<tooling_equipment_list_select_bladeUltrasound20>Amplituda ultrazvučne oštrice 20%%</tooling_equipment_list_select_bladeUltrasound20>
<tooling_equipment_list_select_bladeUltrasound30>Amplituda ultrazvučne oštrice 30%%</tooling_equipment_list_select_bladeUltrasound30>
<tooling_equipment_list_select_bladeUltrasound40>Amplituda ultrazvučne oštrice 40%%</tooling_equipment_list_select_bladeUltrasound40>
<tooling_equipment_list_select_bladeUltrasound50>Amplituda ultrazvučne oštrice 50%%</tooling_equipment_list_select_bladeUltrasound50>
<tooling_equipment_list_select_bladeUltrasound60>Amplituda ultrazvučne oštrice 60%%</tooling_equipment_list_select_bladeUltrasound60>
<tooling_equipment_list_select_bladeUltrasound70>Amplituda ultrazvučne oštrice 70%%</tooling_equipment_list_select_bladeUltrasound70>
<tooling_equipment_list_select_bladeUltrasound80>Amplituda ultrazvučne oštrice 80%%</tooling_equipment_list_select_bladeUltrasound80>
<tooling_equipment_list_select_bladeUltrasound90>Amplituda ultrazvučne oštrice 90%%</tooling_equipment_list_select_bladeUltrasound90>
<tooling_equipment_list_select_bladeUltrasound100>Amplituda ultrazvučne oštrice 100%%</tooling_equipment_list_select_bladeUltrasound100>
<modal_confirm_title>Zahtjev za potvrdom</modal_confirm_title>
<modal_ok_button>Ok</modal_ok_button>
<modal_cancel_button>Poništi</modal_cancel_button>
<modal_confirm_delete_tool>Jesi li siguran da želiš izbrisati alat?</modal_confirm_delete_tool>
<modal_confirm_delete_maintenances>Jesi li siguran da želiš izbrisati odabrano održavanje?</modal_confirm_delete_maintenances>
<modal_confirm_delete_note>Jesi li siguran da želiš izbrisati napomenu?</modal_confirm_delete_note>
<modal_confirm_delete_attachment>Jesi li siguran da želiš izbrisati ovaj prilog?</modal_confirm_delete_attachment>
<modal_confirm_delete_edge>Jesi li siguran da želiš izbrisati oštricu?</modal_confirm_delete_edge>
<modal_confirm_delete_shank>Jesi li siguran da želiš izbrisati držak?</modal_confirm_delete_shank>
<siemens_modal_confirm_delete_shank>Jesi li siguran da želiš izbrisati multitool?</siemens_modal_confirm_delete_shank>
<modal_confirm_delete_tool_inshank>Jesi li siguran da želiš iskrcati alat sa drška?</modal_confirm_delete_tool_inshank>
<siemens_modal_confirm_delete_tool_inshank>Jesi li siguran da želiš iskrcati alat iz multitool-a?</siemens_modal_confirm_delete_tool_inshank>
<modal_confirm_perform_maintenance>Jesi li siguran da si izvršio ovo održavanje?</modal_confirm_perform_maintenance>
<modal_confirm_delete_family>Jesi li siguran da želiš izbrisati familiju?</modal_confirm_delete_family>
<maintenance_header_title>Upravljač održavanja</maintenance_header_title>
<maintenance_card_btn_save_note>Spremi</maintenance_card_btn_save_note>
<maintenance_card_btn_view_all_attach>Prikaži sve datoteke</maintenance_card_btn_view_all_attach>
<maintenance_card_btn_hide_all_attach>Prikaži samo zadnje datoteke</maintenance_card_btn_hide_all_attach>
<maintenance_card_btn_add_attach>Dodaj datoteku</maintenance_card_btn_add_attach>
<maintenance_card_btn_view_all_note>Prikaži sve napomene</maintenance_card_btn_view_all_note>
<maintenance_card_btn_hide_all_note>Prikaži samo zadnje napomene</maintenance_card_btn_hide_all_note>
<maintenance_card_label_btn_footer>Označi kao izvršeno</maintenance_card_label_btn_footer>
<maintenance_header_label_procedure>Potraži održavanje po imenu</maintenance_header_label_procedure>
<maintenance_header_label_procedure_placeholder>Ime održavanja…</maintenance_header_label_procedure_placeholder>
<maintenance_header_label_state>Stanje</maintenance_header_label_state>
<maintenance_label_create_intervention>Kreiraj neku intervenciju održavanja</maintenance_label_create_intervention>
<maintenance_label_disable-maintenance>Odaberi neko održavanje…</maintenance_label_disable-maintenance>
<maintenance_state_expired>Isteklo</maintenance_state_expired>
<maintenance_state_closed>Zatvoreno</maintenance_state_closed>
<maintenance_state_running>Nije isteklo</maintenance_state_running>
<maintenance_state_ending>Na isteku</maintenance_state_ending>
<maintenance_table_header_counter>Brojač</maintenance_table_header_counter>
<maintenance_table_header_deadline>Istek</maintenance_table_header_deadline>
<maintenance_table_header_state>Stanje</maintenance_table_header_state>
<maintenance_table_header_title>Naslov</maintenance_table_header_title>
<maintenance_card_label_date_timestamp>Dodatak %s u %s</maintenance_card_label_date_timestamp>
<maintenance_card_btn_cancel_modify_note>Briši</maintenance_card_btn_cancel_modify_note>
<maintenance_card_btn_save_modify_note>Spremi</maintenance_card_btn_save_modify_note>
<maintenance_date_neverdone>Nema izvršenih intervencija održavanja</maintenance_date_neverdone>
<maintenance_date_justdone>Zadnja intervencija izvršena prije nekoliko minuta, od: %s</maintenance_date_justdone>
<maintenance_date_hours>Zadnja intervencija izvršena prije %d sati, od: %s</maintenance_date_hours>
<maintenance_date_days>Zadnja intervencija izvršena prije %d dana, od: %s</maintenance_date_days>
<maintenance_date_fixeddate>Zadnja intervencija izvršena dana: %s, od: %s</maintenance_date_fixeddate>
<maintenance_card_created_timestamp>Održavanje kreirano dana %s u %s sati</maintenance_card_created_timestamp>
<maintenance_card_attachments>Prilozi</maintenance_card_attachments>
<maintenance_card_notes>Napomene</maintenance_card_notes>
<create_maintenance_lbl_title_window>Kreiranje intervencije održavanja</create_maintenance_lbl_title_window>
<create_maintenance_lbl_title>Naslov</create_maintenance_lbl_title>
<create_maintenance_btn_cancel>Poništi</create_maintenance_btn_cancel>
<create_maintenance_lbl_date>Datum</create_maintenance_lbl_date>
<create_maintenance_lbl_description>Opis</create_maintenance_lbl_description>
<create_maintenance_lbl_end_time>Sat</create_maintenance_lbl_end_time>
<create_maintenance_lbl_typology>Tip</create_maintenance_lbl_typology>
<create_maintenance_lbl_repeat>Ponavljaj svakih</create_maintenance_lbl_repeat>
<create_maintenance_repeat_day>Dana</create_maintenance_repeat_day>
<create_maintenance_repeat_hour>Sati</create_maintenance_repeat_hour>
<create_maintenance_repeat_minutes>Minuta</create_maintenance_repeat_minutes>
<create_maintenance_repeat_months>Mjeseci</create_maintenance_repeat_months>
<create_maintenance_lbl_fixeddate>Fiksni Datum</create_maintenance_lbl_fixeddate>
<create_maintenance_lbl_temporal>Privremeno</create_maintenance_lbl_temporal>
<create_maintenance_btn_add_confirm>Kreiraj Održavanje</create_maintenance_btn_add_confirm>
<create_maintenance_btn_edit_confirm>Izmjeni Održavanje</create_maintenance_btn_edit_confirm>
<production_header_title>Upravitelj Proizvodnje</production_header_title>
<production_box_video_button_cms>Active</production_box_video_button_cms>
<production_box_video_button_cnc>NC</production_box_video_button_cnc>
<production_box_video_button_prod>Prod</production_box_video_button_prod>
<production_softkeys_prefered_header_title>Softkey Preferirani</production_softkeys_prefered_header_title>
<card_axes_production_axes_tab_interp>Interp.</card_axes_production_axes_tab_interp>
<card_axes_production_axes_tab_om>Absol.</card_axes_production_axes_tab_om>
<card_axes_production_axes_tab_goto>To-Go</card_axes_production_axes_tab_goto>
<card_axes_production_axes_tab_prog>Prog.</card_axes_production_axes_tab_prog>
<card_production_rapid>Rapid:</card_production_rapid>
<card_production_work>Work:</card_production_work>
<card_job_production_offset_length>Stvarna duljina:</card_job_production_offset_length>
<card_job_production_offset_radius>Stvarni polumjer:</card_job_production_offset_radius>
<card_job_production_offset_diameter>Stvarni Promjer:</card_job_production_offset_diameter>
<card_job_production_origin>Originalno je aktivno:</card_job_production_origin>
<card_job_production_offset>Korektor aktivan:</card_job_production_offset>
<siemens_card_job_production_offset>Oštrica aktivna:</siemens_card_job_production_offset>
<card_job_production_iso_lines>Iso linije:</card_job_production_iso_lines>
<card_job_production_message>Poruka:</card_job_production_message>
<production_label_select_prg>Odaberi neki program</production_label_select_prg>
<production_label_select_auto_mode>Odaberi Auto način za izvršavanje nekog programa</production_label_select_auto_mode>
<production_softkeys_prefered_sel_in_progr>Odabir je u tijeku</production_softkeys_prefered_sel_in_progr>
<button_production_go_to_selection>Idite na odabir</button_production_go_to_selection>
<modal_load_program_lbl_title_window>Program-Loader</modal_load_program_lbl_title_window>
<modal_load_program_lbl_box_select_program>Odaberi neki program</modal_load_program_lbl_box_select_program>
<modal_load_program_btn_upload_program>Ukrcaj i aktiviraj</modal_load_program_btn_upload_program>
<modal_load_program_btn_load_program>Aktivno</modal_load_program_btn_load_program>
<modal_load_program_search_placeholder>Traži neki program po imenu</modal_load_program_search_placeholder>
<modal_load_program_creation_date>Datum kreiranja:</modal_load_program_creation_date>
<modal_load_program_last_change_date>Datum zadnje izmjene:</modal_load_program_last_change_date>
<modal_load_program_lbl_img_not_found>Preview nije raspoloživ</modal_load_program_lbl_img_not_found>
<modal_load_program_lbl_upload_all_files>Pošalji sve datoteke u odabranu mapu</modal_load_program_lbl_upload_all_files>
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
<alarm_history_header_title>Upravljač Povijesti Alarma</alarm_history_header_title>
<alarm_history_body_filter>Filtriraj alarme po naslovu</alarm_history_body_filter>
<alarm_history_body_filter_placeholder>Naslov…</alarm_history_body_filter_placeholder>
<alarm_history_body_filter_source>Izvor</alarm_history_body_filter_source>
<alarm_history_body_date_range>Interval datuma</alarm_history_body_date_range>
<alarm_history_body_user>Korisnici</alarm_history_body_user>
<alarms_history_table_source>Izvor</alarms_history_table_source>
<alarms_history_table_title>Naslov</alarms_history_table_title>
<alarms_history_table_date>Datum</alarms_history_table_date>
<alarms_history_table_user>Korisnici</alarms_history_table_user>
<alarm_history_label_select_alarms>Odaberi neki alarm…</alarm_history_label_select_alarms>
<alarm_history_users_not_user>Nema-Korisnik</alarm_history_users_not_user>
<create_user_lbl_title_window>Izmjeni korisnika</create_user_lbl_title_window>
<create_user_lbl_firstname>Ime</create_user_lbl_firstname>
<create_user_lbl_lastname>Prezime</create_user_lbl_lastname>
<create_user_lbl_password>Lozinka</create_user_lbl_password>
<create_user_lbl_username>Korisničko ime</create_user_lbl_username>
<create_user_btn_add_confirm>Dodaj</create_user_btn_add_confirm>
<create_user_btn_edit_confirm>Izmjeni</create_user_btn_edit_confirm>
<create_user_btn_cancel>Poništi</create_user_btn_cancel>
<create_user_psw_equals>Lozinke moraju biti različite</create_user_psw_equals>
<password_user_lbl_actpassword>Aktualna lozinka</password_user_lbl_actpassword>
<password_user_lbl_newpassword>Nova lozinka</password_user_lbl_newpassword>
<password_user_lbl_title_window>Izmijeni lozinku: %s</password_user_lbl_title_window>
<role_user_lbl_title_window>Izmijeni ulogu: %s</role_user_lbl_title_window>
<modal_confirm_delete_user>Jesi li siguran da želiš ukloniti korisnika?</modal_confirm_delete_user>
<users_label_create_users>Dodaj novog korisnika</users_label_create_users>
<users_header_title>Upravljač Korisnika</users_header_title>
<users_header_label_userfilter>Filtriraj korisnike po Korisničkom Imenu</users_header_label_userfilter>
<users_header_label_userfilter_placeholder>Korisničko Ime…</users_header_label_userfilter_placeholder>
<users_table_header_avatar>Avatar</users_table_header_avatar>
<users_table_header_username>Korisničko Ime</users_table_header_username>
<users_table_header_firstname>Ime</users_table_header_firstname>
<users_table_header_lastname>Prezime</users_table_header_lastname>
<users_table_header_language>Jezik</users_table_header_language>
<users_table_header_role>Uloga</users_table_header_role>
<footer_tooltip_production>Upravitelj Proizvodnje</footer_tooltip_production>
<footer_tooltip_tooling>Upravitelj Alata</footer_tooltip_tooling>
<footer_tooltip_maintenance>Upravitelj održavanja stroja</footer_tooltip_maintenance>
<footer_tooltip_alarms>Povijest alarma</footer_tooltip_alarms>
<footer_tooltip_report>Izvješće i stanje stroja</footer_tooltip_report>
<footer_tooltip_utilities>Vanjski software i Utility</footer_tooltip_utilities>
<footer_tooltip_scada>Scada stranice</footer_tooltip_scada>
<footer_tooltip_under_hood>Otvara/zatvara prostor ispod haube</footer_tooltip_under_hood>
<footer_tooltip_job_editor>Job Editor</footer_tooltip_job_editor>
<footer_tooltip_users>User Manager</footer_tooltip_users>
<header_tooltip_btn_close>Zatvori CMS-Step</header_tooltip_btn_close>
<header_tooltip_btn_minimize>Minimiziraj CMS-Step</header_tooltip_btn_minimize>
<header_tooltip_btn_help>Predoči Help stroja</header_tooltip_btn_help>
<header_tooltip_btn_mchinfo>Predoči Informacije o Stroju</header_tooltip_btn_mchinfo>
<header_tooltip_btn_usrinfo>Predoči Informacije o korisniku</header_tooltip_btn_usrinfo>
<header_tooltip_btn_nc_maintenance>Otvara/zatvara listu isteklih radnji održavanja</header_tooltip_btn_nc_maintenance>
<header_tooltip_close_uth>Zatvara prostor ispod haube</header_tooltip_close_uth>
<header_tooltip_swipedown>Zatvara prostor ispod haube</header_tooltip_swipedown>
<header_tooltip_nc_error>CN u Greški. Otvara/zatvara listu alarma</header_tooltip_nc_error>
<header_tooltip_nc_idle>CN u Čekanju Naredaba</header_tooltip_nc_idle>
<header_tooltip_nc_running>CN u Izvršenju Naredaba</header_tooltip_nc_running>
<header_tooltip_Nc_Process>Informacije o postupku</header_tooltip_Nc_Process>
<header_tooltip_mainstat_ko>Uređaji stroja nisu ok</header_tooltip_mainstat_ko>
<header_tooltip_mainstat_ok>Stroj u radu</header_tooltip_mainstat_ok>
<header_tooltip_powstat_ko>Stroj Nije spreman za rad</header_tooltip_powstat_ko>
<header_tooltip_powstat_ok>Stroj je spreman za rad</header_tooltip_powstat_ok>
<header_tooltip_emergency>Gumbi za opasnost pritisnuti</header_tooltip_emergency>
<header_tooltip_key>Ključ nije umetnut</header_tooltip_key>
<header_tooltip_power-on>Osi nemaju pogona</header_tooltip_power-on>
<header_tooltip_protections>Sigurnosni štitnici nisu ok</header_tooltip_protections>
<header_tooltip_settings-mode>Setting modalitet aktivan</header_tooltip_settings-mode>
<header_tooltip_air-flow>Komprimirani zrak nije ok</header_tooltip_air-flow>
<header_tooltip_zeroing>Potrebno osi svesti na ništicu</header_tooltip_zeroing>
<heads_tooltip_abrasive>Korišteno brusno sredstvo</heads_tooltip_abrasive>
<heads_tooltip_active>Glava aktivna</heads_tooltip_active>
<heads_tooltip_load>Aktualno opterećenje</heads_tooltip_load>
<heads_tooltip_mpa>Aktualni tlak</heads_tooltip_mpa>
<heads_tooltip_name>Ime glave</heads_tooltip_name>
<heads_tooltip_override>Postotak override-a</heads_tooltip_override>
<heads_tooltip_ovminus>Smanji override</heads_tooltip_ovminus>
<heads_tooltip_ovplus>Povećaj override</heads_tooltip_ovplus>
<heads_tooltip_rpm>Aktualna brzina</heads_tooltip_rpm>
<heads_tooltip_tool>Id Montiranog alata</heads_tooltip_tool>
<heads_tooltip_vacuum>Praznina na glavi</heads_tooltip_vacuum>
<heads_tooltip_process>Cn postupak vlasnika glave</heads_tooltip_process>
<process_tooltip_select>Odaberi postupak %d</process_tooltip_select>
<job_item_part_program>Part Program</job_item_part_program>
<job_item_macro_cms>Macro CMS</job_item_macro_cms>
<job_item_text>Tekst</job_item_text>
<job_item_pause>Stanka</job_item_pause>
<job_item_delay>Kašnjenje</job_item_delay>
<job_item_origin>Originalno</job_item_origin>
<job_item_end_program>Kraj Programa</job_item_end_program>
</root>
+663
View File
@@ -0,0 +1,663 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Automatically generated by lucio.maranta: 2019-07-03 -->
<root>
<language_it>Română</language_it>
<header_maintainance_request>Efectuați întreținerea</header_maintainance_request>
<support_summary>Termen limită:</support_summary>
<header_maintainance_request_explanation>Există o procedură care trebuie efectuată</header_maintainance_request_explanation>
<alarm_ribbon_title_more_items>Există %d alarme active</alarm_ribbon_title_more_items>
<warning_ribbon_title_more_items>Există %d warning active</warning_ribbon_title_more_items>
<process_label_name>Proces</process_label_name>
<userinfo_lbl_title>Setări Utilizator</userinfo_lbl_title>
<userinfo_btn_logout>Log out</userinfo_btn_logout>
<userinfo_lbl_language>Limba</userinfo_lbl_language>
<userinfo_btn_cancel>Anulați</userinfo_btn_cancel>
<userinfo_btn_save>Salvați</userinfo_btn_save>
<login_lbl_title>Login utilizator</login_lbl_title>
<login_lbl_username>Nume utilizator</login_lbl_username>
<login_lbl_password>Parola</login_lbl_password>
<login_btn_login>Long in</login_btn_login>
<login_lbl_invalidusername>Numele de utilizator incorect</login_lbl_invalidusername>
<login_lbl_invalidpassword>Parola incorectă</login_lbl_invalidpassword>
<alarms_btn_history_show>Consultați istoricul alarmelor</alarms_btn_history_show>
<alarms_refresh_all>Refresh toate</alarms_refresh_all>
<alarm_item_btn_show>Vezi</alarm_item_btn_show>
<alarm_ribbon_title_1_item>Alarmă</alarm_ribbon_title_1_item>
<warning_ribbon_title_1_item>Avertizare</warning_ribbon_title_1_item>
<alarm_detail_lbl_status>Stare</alarm_detail_lbl_status>
<alarm_manual_lbl_title>Procedura de recuperare</alarm_manual_lbl_title>
<alarm_manual_lbl_description>Încetarea alarmei</alarm_manual_lbl_description>
<alarm_manual_btn_start>Pornire</alarm_manual_btn_start>
<alarm_detail_btn_show_manual>Consultați Manualul</alarm_detail_btn_show_manual>
<alarm_detail_btn_ask_help>Cereți Ajutor</alarm_detail_btn_ask_help>
<alarm_detail_btn_refresh>Refresh</alarm_detail_btn_refresh>
<alarm_btn_back_to_list>Înapoi la listă</alarm_btn_back_to_list>
<alarm_status_active>Activ</alarm_status_active>
<alarm_status_deleted>Eliminat</alarm_status_deleted>
<alarm_btn_add_attach>Adăugați un atașament</alarm_btn_add_attach>
<machineinfo_lbl_title>Informații despre Mașină</machineinfo_lbl_title>
<machine_serial_number>Număr de serie:</machine_serial_number>
<machine_installation_date>Data instalării:</machine_installation_date>
<machineinfo_model_nc>Model Cn:</machineinfo_model_nc>
<machineinfo_serial_nc>Număr de Serie Cn:</machineinfo_serial_nc>
<machineinfo_firmware_version>Versiune firmware Cn:</machineinfo_firmware_version>
<machineinfo_plc_version>Versiune Plc:</machineinfo_plc_version>
<machineinfo_current_language>Limbă selectată Cn:</machineinfo_current_language>
<machineinfo_processes>Numărul proceselor Cn:</machineinfo_processes>
<machineinfo_datetime>Time-Stamp Cn:</machineinfo_datetime>
<machineinfo_umeas>Unitate de măsură Cn:</machineinfo_umeas>
<machineinfo_server_cms_version>Versiunea Serverului CMS-Active:</machineinfo_server_cms_version>
<machineinfo_core_cms_version>Versiunea Core CMS-Active:</machineinfo_core_cms_version>
<machineinfo_cms_client_version>Versiunea Client Maestro-Active:</machineinfo_cms_client_version>
<machineinfo_cms_dateformat>Formatul datelor CMS-Active:</machineinfo_cms_dateformat>
<machineinfo_server_scm_version>Versiunea Serverului Maestro-Active:</machineinfo_server_scm_version>
<machineinfo_core_scm_version>Versiunea Core Maestro-Active:</machineinfo_core_scm_version>
<machineinfo_scm_client_version>Versiunea Client Maestro-Active:</machineinfo_scm_client_version>
<machineinfo_scm_dateformat>Formatul datelor Maestro-Active:</machineinfo_scm_dateformat>
<contactinfo_lbl_title>Informatii de contact</contactinfo_lbl_title>
<contact_name>Nume de contact:</contact_name>
<contact_email>E-mail:</contact_email>
<contact_phoneNumber>Numar de telefon:</contact_phoneNumber>
<head_label_rpm>Rpm</head_label_rpm>
<head_label_tool>Unealtă</head_label_tool>
<head_label_load>Încărcare</head_label_load>
<head_label_pressure>Mpa</head_label_pressure>
<head_label_abrasive>Abraziv</head_label_abrasive>
<head_label_gmin>rot/min</head_label_gmin>
<head_label_vacuum>Vacuum</head_label_vacuum>
<head_label_bar>bari</head_label_bar>
<head_label_feed>Viteză</head_label_feed>
<jog_menu_axis>Axă</jog_menu_axis>
<jog_menu_inc>Incr:</jog_menu_inc>
<sfk_category_1>Softkey Generale</sfk_category_1>
<sfk_category_2>Blocări / Zone vacuum</sfk_category_2>
<sfk_category_3>Agregate / Dispozitive de răcire</sfk_category_3>
<sfk_category_4>Mod de lucru</sfk_category_4>
<sfk_category_5>Lansare proceduri / Programe de utilizator</sfk_category_5>
<sfk_category_6>Echipare cu Unealtă și protecții</sfk_category_6>
<sfk_category_7>Încărcare / Descărcare</sfk_category_7>
<softkey_confirm>Ești sigur?</softkey_confirm>
<confirm_request_confirm>Confirmaţi</confirm_request_confirm>
<confirm_request_cancel>Anulați</confirm_request_cancel>
<plc_softkeys_item_selected>elemente selectate</plc_softkeys_item_selected>
<plc_softkeys_close_selection>Terminați selecția</plc_softkeys_close_selection>
<modal_m155_hide_window>Ascundeți Fereastra</modal_m155_hide_window>
<modal_m155_title>Mesaj din procesul %d</modal_m155_title>
<modal_m155_value>Valoare:</modal_m155_value>
<utilities_header_label>Utility &#38; Software externe</utilities_header_label>
<modal_nochangepage_title>Operația nu este posibilă</modal_nochangepage_title>
<modal_nochangepage_message>Terminați operațiile în așteptare înainte de a utiliza alte aplicații</modal_nochangepage_message>
<modal_confirm_close_application>Sigur doriți să închideți serviciul Activ?</modal_confirm_close_application>
<modal_nocloseapp_title>Operația nu este posibilă</modal_nocloseapp_title>
<modal_nocloseapp_message>Terminați operațiile în așteptare înainte de a închide Active</modal_nocloseapp_message>
<hmi_cmd_demo_1>Date Nc</hmi_cmd_demo_1>
<hmi_cmd_demo_2>Procese Nc</hmi_cmd_demo_2>
<hmi_cmd_demo_3>Alarme</hmi_cmd_demo_3>
<hmi_cmd_demo_4>Axe</hmi_cmd_demo_4>
<hmi_cmd_demo_5>Byte-Memory</hmi_cmd_demo_5>
<hmi_cmd_demo_6>Programe</hmi_cmd_demo_6>
<hmi_cmd_demo_7>Depozite</hmi_cmd_demo_7>
<hmi_cmd_demo_8>Familii / Mânere</hmi_cmd_demo_8>
<hmi_cmd_demo_9>Unelte</hmi_cmd_demo_9>
<hmi_cmd_siemens_1>Mașină</hmi_cmd_siemens_1>
<hmi_cmd_siemens_2>Parametrii</hmi_cmd_siemens_2>
<hmi_cmd_siemens_3>Program</hmi_cmd_siemens_3>
<hmi_cmd_siemens_4>Prog. Manager</hmi_cmd_siemens_4>
<hmi_cmd_siemens_5>Diagnosticare</hmi_cmd_siemens_5>
<hmi_cmd_siemens_6>Punere în funcțiune</hmi_cmd_siemens_6>
<hmi_cmd_fanuc_1>Poz</hmi_cmd_fanuc_1>
<hmi_cmd_fanuc_2>Prog</hmi_cmd_fanuc_2>
<hmi_cmd_fanuc_3>Ofst</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>Sys</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>Msg</hmi_cmd_fanuc_5>
<hmi_cmd_fanuc_6>Mgi</hmi_cmd_fanuc_6>
<tooling_title_label>Manager Unelte</tooling_title_label>
<store_title_magazine>Depozit</store_title_magazine>
<store_title_spindle>Mandrină</store_title_spindle>
<launch_tools>Unelte</launch_tools>
<launch_shanks>Mânere</launch_shanks>
<siemens_launch_shanks>Multitools</siemens_launch_shanks>
<launch_hands>Configurare Clești</launch_hands>
<launch_families>Familii</launch_families>
<siemens_launch_families>Grupuri de unelte</siemens_launch_families>
<tooling_equipment_label_box>Gestionarea Uneltelor</tooling_equipment_label_box>
<tooling_magazine_label>Echipare cu unelte magazii:</tooling_magazine_label>
<tooling_magazine_selfadaptivepath_step>Step parcurs auto-adaptiv</tooling_magazine_selfadaptivepath_step>
<tooling_magazine_export_label>Exportați unelte</tooling_magazine_export_label>
<tooling_magazine_import_label>Importați unelte</tooling_magazine_import_label>
<tooling_tables_label>Unelte &#38; Configurații:</tooling_tables_label>
<tooling_equipment_label_search>Selectați o unealtă:</tooling_equipment_label_search>
<tooling_equipment_label_add>Creați o nouă unealtă</tooling_equipment_label_add>
<tooling_equipment_button_modify>Modificați</tooling_equipment_button_modify>
<tooling_equipment_button_cancel>Anulați</tooling_equipment_button_cancel>
<tooling_equipment_button_save>Salvați</tooling_equipment_button_save>
<tooling_equipment_button_add>Adaugați</tooling_equipment_button_add>
<tooling_edgesdataequip_skill_tools>Offset</tooling_edgesdataequip_skill_tools>
<siemens_tooling_edgesdataequip_skill_tools>Tăiș</siemens_tooling_edgesdataequip_skill_tools>
<tooling_edgesdataequip_new>Offset Nou</tooling_edgesdataequip_new>
<siemens_tooling_edgesdataequip_new>Tăiș Nou</siemens_tooling_edgesdataequip_new>
<tooling_parameters_tab>Parametrii</tooling_parameters_tab>
<tooling_equipment_editlabel>Modificați unealtă n. %d</tooling_equipment_editlabel>
<tooling_equipment_newlabel>Creare Unealtă Nouă</tooling_equipment_newlabel>
<tooling_edgesdata_label_edit>Modificați Offset nr. %d</tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_edit>Modificați Tăiș n. %d</siemens_tooling_edgesdata_label_edit>
<siemens_tooling_edgesdata_label_new>Creare Tăiș nou</siemens_tooling_edgesdata_label_new>
<tooling_edgesdata_label_new>Asociație Offset nou</tooling_edgesdata_label_new>
<tooling_shanks_label_box>Gestionare Mânere</tooling_shanks_label_box>
<tooling_shanks_label_search>Selectați un Mâner:</tooling_shanks_label_search>
<tooling_shanks_label_add>Creați un nou Mâner</tooling_shanks_label_add>
<tooling_shanks_name>Mâner %d</tooling_shanks_name>
<siemens_tooling_shanks_label_box>Gestionare Multitool</siemens_tooling_shanks_label_box>
<siemens_tooling_shanks_label_search>Selectați un Multitool:</siemens_tooling_shanks_label_search>
<siemens_tooling_shanks_label_add>Creați un nou Multitool (unealtă multifuncțional)</siemens_tooling_shanks_label_add>
<siemens_tooling_shanks_name>Multitool %d</siemens_tooling_shanks_name>
<tooling_childtoolsshanks_skill_tools>Unealtă %d</tooling_childtoolsshanks_skill_tools>
<tooling_childtoolsshanks_new>Unealtă Nouă</tooling_childtoolsshanks_new>
<tooling_shanks_editlabel>Modificați mâner nr. %d</tooling_shanks_editlabel>
<siemens_tooling_shanks_editlabel>Modificați multitool nr. %d</siemens_tooling_shanks_editlabel>
<tooling_childtoolsshank_select_tool>Alegeți unealta pe care doriți să o adăugați la mâner</tooling_childtoolsshank_select_tool>
<siemens_tooling_childtoolsshank_select_tool>Alegeți unealta pe care doriți să o adăugați la Multitool</siemens_tooling_childtoolsshank_select_tool>
<tooling_shanks_label_new>Creare Mâner nou</tooling_shanks_label_new>
<siemens_tooling_shanks_label_new>Creare Multitool nou</siemens_tooling_shanks_label_new>
<tooling_shanks_edittoollabel>Modificați unealtă %d din Mâner %d</tooling_shanks_edittoollabel>
<siemens_tooling_shanks_edittoollabel>Modificați unealtă %d din Multitool %d</siemens_tooling_shanks_edittoollabel>
<tooling_magpos_label_box>Gestionare Cești depozite</tooling_magpos_label_box>
<tooling_magpos_label_search>Selectați un clește:</tooling_magpos_label_search>
<tooling_magpos>Poz</tooling_magpos>
<tooling_magazine>Depozit</tooling_magazine>
<tooling_magpos_editlabel>Modificarea poziției n. %d din depozit %s</tooling_magpos_editlabel>
<tooling_families_label_box>Gestionare Familii</tooling_families_label_box>
<siemens_tooling_families_label_box>Gestionare Grupuri-unelte</siemens_tooling_families_label_box>
<tooling_families_label_search>Selectați o familie:</tooling_families_label_search>
<siemens_tooling_families_label_search>Selectați un grup:</siemens_tooling_families_label_search>
<tooling_families_boxright_editlabel>Modificați familia %s</tooling_families_boxright_editlabel>
<tooling_families_boxright_newlabel>Creare familie nouă</tooling_families_boxright_newlabel>
<siemens_tooling_families_boxright_editlabel>Modificați grup %s</siemens_tooling_families_boxright_editlabel>
<siemens_tooling_families_boxright_newlabel>Creare grup nou</siemens_tooling_families_boxright_newlabel>
<tooling_childtoolsfamily_skill_tools>Unealtă %d</tooling_childtoolsfamily_skill_tools>
<siemens_tooling_childtoolsfamily_skill_tools>Duplo %d</siemens_tooling_childtoolsfamily_skill_tools>
<tooling_childtoolsfamily_boxright_editlabel>Modificați unealtă %d din familia %s</tooling_childtoolsfamily_boxright_editlabel>
<siemens_tooling_childtoolsfamily_boxright_editlabel>Modificați unealtă %d din grupul %s</siemens_tooling_childtoolsfamily_boxright_editlabel>
<tooling_equipment_search_placeholder>Căutați o unealtă după id</tooling_equipment_search_placeholder>
<siemens_tooling_equipment_search_placeholder>Căutați o unealtă după nume</siemens_tooling_equipment_search_placeholder>
<tooling_shank_search_placeholder>Căutați un mâner după Id</tooling_shank_search_placeholder>
<siemens_tooling_shank_search_placeholder>Căutați un Multitool după nume</siemens_tooling_shank_search_placeholder>
<tooling_magpos_search_placeholder>Căutați un clește după Id</tooling_magpos_search_placeholder>
<tooling_families_search_placeholder>Căutați o familie după nume</tooling_families_search_placeholder>
<siemens_tooling_families_search_placeholder>Căutați un grup-unelte după nume</siemens_tooling_families_search_placeholder>
<tooling_magazine_abbreviation>MA%d</tooling_magazine_abbreviation>
<tooling_shank_abbreviation>S%d</tooling_shank_abbreviation>
<tooling_tool_abbreviation>T%d</tooling_tool_abbreviation>
<siemens_tooling_tool_abbreviation>ST%d</siemens_tooling_tool_abbreviation>
<siemens_tooling_shank_abbreviation>M%d</siemens_tooling_shank_abbreviation>
<tooling_family_abbreviation>F%d</tooling_family_abbreviation>
<tooling_magpos_abbreviation>P%d</tooling_magpos_abbreviation>
<depot_button_cancel>Finalizați modificările</depot_button_cancel>
<depot_button_modify>Modificați</depot_button_modify>
<depot_checkbox_viewstate_equipment>Vizualizați starea uneltei</depot_checkbox_viewstate_equipment>
<depot_label_search>Selectați o unealtă și trageți-o în poziția corespunzătoare</depot_label_search>
<depot_search_placeholder>Căutați o unealtă după nume</depot_search_placeholder>
<depot_avaiable_position>Poziție disponibilă</depot_avaiable_position>
<load_depot_lbl_title>Încărcați unealtă</load_depot_lbl_title>
<load_depot_lbl_select>Selectați unealta de încărcat</load_depot_lbl_select>
<load_depot_select_title>Unealtă</load_depot_select_title>
<load_depot_btn_cancel>Anulați</load_depot_btn_cancel>
<load_depot_btn_confirm>Încărcați</load_depot_btn_confirm>
<toolinginfo_edit_button>Modificați Unealta</toolinginfo_edit_button>
<toolinginfo_explain_lbl>Finalizați echiparea cu unelte a depozitului pentru a modifica unealta</toolinginfo_explain_lbl>
<modal_add_offset_tool_position>Poziție</modal_add_offset_tool_position>
<modal_add_offset_tool_id>Id Offset</modal_add_offset_tool_id>
<modal_add_offset_tool_abbreviation>Offset%d</modal_add_offset_tool_abbreviation>
<tooling_families_label_add>Creați o nouă familie</tooling_families_label_add>
<load_depot_error_fit>Spațiu prea mic pentru a încărca această unealtă</load_depot_error_fit>
<depot_action_loading_header>Încărcare Unealtă</depot_action_loading_header>
<depot_action_unloading_header>Descărcare Unealtă</depot_action_unloading_header>
<depot_action_transfer_header>Transfer Unealtă</depot_action_transfer_header>
<depot_action_generic_header>Tool-Manager Ocupat</depot_action_generic_header>
<depot_action_generic_text>O operație blochează gestionatorul unelte...</depot_action_generic_text>
<depot_action_magazine_label>Depozit %d</depot_action_magazine_label>
<depot_action_magazine_position>Poz. %d</depot_action_magazine_position>
<tooling_equipment_list_category_general>General:</tooling_equipment_list_category_general>
<siemens_tooling_equipment_list_category_family>Grup - Unelte:</siemens_tooling_equipment_list_category_family>
<tooling_equipment_list_category_family>Familie:</tooling_equipment_list_category_family>
<tooling_equipment_list_category_state>Starea Uneltei:</tooling_equipment_list_category_state>
<tooling_equipment_list_category_cooling>Agent frigorific:</tooling_equipment_list_category_cooling>
<tooling_equipment_list_category_magazine>Depozit:</tooling_equipment_list_category_magazine>
<tooling_equipment_list_category_head>Mandrină:</tooling_equipment_list_category_head>
<tooling_equipment_list_category_life>Viață:</tooling_equipment_list_category_life>
<tooling_equipment_list_category_geometry>Geometrie:</tooling_equipment_list_category_geometry>
<tooling_shanks_list_category_general>General:</tooling_shanks_list_category_general>
<tooling_shanks_list_category_state>Stare Mâner:</tooling_shanks_list_category_state>
<siemens_tooling_shanks_list_category_state>Stare Multitool:</siemens_tooling_shanks_list_category_state>
<tooling_shanks_list_category_magazine>Depozit:</tooling_shanks_list_category_magazine>
<tooling_magpos_list_category_general>General:</tooling_magpos_list_category_general>
<tooling_families_list_category_general>General:</tooling_families_list_category_general>
<tooling_families_list_category_gamma>Gamă Invertor</tooling_families_list_category_gamma>
<tooling_families_list_category_magazine>Depozit:</tooling_families_list_category_magazine>
<tooling_equipment_list_category_status>Starea Uneltei:</tooling_equipment_list_category_status>
<tooling_equipment_list_category_offset>Offset:</tooling_equipment_list_category_offset>
<tooling_shanks_list_category_balluf>Rfid</tooling_shanks_list_category_balluf>
<tooling_shanks_list_category_magPosType>Tipul poziției solicitate:</tooling_shanks_list_category_magPosType>
<tooling_shanks_list_category_position>Poziție:</tooling_shanks_list_category_position>
<tooling_families_list_category_dynamicCompensation>Compensare Dinamică:</tooling_families_list_category_dynamicCompensation>
<tooling_families_list_category_tcp>Tabel TCP:</tooling_families_list_category_tcp>
<tooling_families_list_category_cooling>Agent frigorific:</tooling_families_list_category_cooling>
<tooling_families_list_category_limits>Limitări:</tooling_families_list_category_limits>
<tooling_families_list_category_selfAdaptive>Parcurs auto-adaptiv:</tooling_families_list_category_selfAdaptive>
<tooling_families_list_category_life>Viață:</tooling_families_list_category_life>
<tooling_families_list_category_revive>Rectificare:</tooling_families_list_category_revive>
<tooling_equipment_list_category_limits>Limitări:</tooling_equipment_list_category_limits>
<tooling_equipment_list_category_revive>Rectificare:</tooling_equipment_list_category_revive>
<tooling_equipment_list_category_dynamicCompensation>Compensare Dinamică:</tooling_equipment_list_category_dynamicCompensation>
<tooling_equipment_list_category_tcp>Tabel TCP:</tooling_equipment_list_category_tcp>
<tooling_equipment_list_category_selfAdaptive>Parcurs auto-adaptiv:</tooling_equipment_list_category_selfAdaptive>
<tooling_equipment_param_id>Id Ut.</tooling_equipment_param_id>
<tooling_equipment_param_toolType>Tip Ut.</tooling_equipment_param_toolType>
<tooling_equipment_param_lifeType>Tip viață</tooling_equipment_param_lifeType>
<tooling_equipment_param_familyName>Nume</tooling_equipment_param_familyName>
<tooling_equipment_param_name>Nume</tooling_equipment_param_name>
<tooling_equipment_param_childId>Id fiu</tooling_equipment_param_childId>
<tooling_equipment_param_multitoolId>Multitool Id</tooling_equipment_param_multitoolId>
<tooling_equipment_param_isEnabled>Unealtă Activată</tooling_equipment_param_isEnabled>
<tooling_equipment_param_isActive>Unealtă Activă</tooling_equipment_param_isActive>
<tooling_equipment_param_isInhibited>Unealtă Blocată</tooling_equipment_param_isInhibited>
<tooling_equipment_param_inFixedPlace>Unealtă În poz. fixă</tooling_equipment_param_inFixedPlace>
<tooling_equipment_param_isMeasured>Unealtă Măsurată</tooling_equipment_param_isMeasured>
<tooling_equipment_param_inChangeTool>Unealtă în CU</tooling_equipment_param_inChangeTool>
<tooling_equipment_param_isInUse>Unealtă în Uz</tooling_equipment_param_isInUse>
<tooling_equipment_param_preAlarm>Unealtă în Prealarmă</tooling_equipment_param_preAlarm>
<tooling_equipment_param_cooling>Răcire principală</tooling_equipment_param_cooling>
<tooling_equipment_param_cooling1>Răcire 1</tooling_equipment_param_cooling1>
<tooling_equipment_param_cooling2>Răcire 2</tooling_equipment_param_cooling2>
<tooling_equipment_param_cooling3>Răcire 3</tooling_equipment_param_cooling3>
<tooling_equipment_param_cooling4>Răcire 4</tooling_equipment_param_cooling4>
<tooling_equipment_param_cooling5>Răcire 5</tooling_equipment_param_cooling5>
<tooling_equipment_param_cooling6>Răcire 6</tooling_equipment_param_cooling6>
<tooling_equipment_param_cooling7>Răcire 7</tooling_equipment_param_cooling7>
<tooling_equipment_param_magazinePositionType>Tip Clește</tooling_equipment_param_magazinePositionType>
<tooling_equipment_param_leftSize>Dimensiune Stânga</tooling_equipment_param_leftSize>
<tooling_equipment_param_rightSize>Dimensiune Dreapta</tooling_equipment_param_rightSize>
<tooling_equipment_param_rotation>Tip Rotație</tooling_equipment_param_rotation>
<tooling_equipment_param_maxSpeed>Viteza Maximă</tooling_equipment_param_maxSpeed>
<tooling_equipment_param_maxAcceleration>Accelerare Maximă</tooling_equipment_param_maxAcceleration>
<tooling_equipment_param_magpos_magazineId>Id Mag.</tooling_equipment_param_magpos_magazineId>
<tooling_equipment_param_magpos_positionId>Poziţie</tooling_equipment_param_magpos_positionId>
<tooling_equipment_param_magpos_type>Tip</tooling_equipment_param_magpos_type>
<tooling_equipment_param_magpos_physicalType>Tip mecanic</tooling_equipment_param_magpos_physicalType>
<tooling_equipment_param_magpos_disabled>Invalidată</tooling_equipment_param_magpos_disabled>
<tooling_equipment_param_position>Poziţie</tooling_equipment_param_position>
<tooling_equipment_param_shankId>Id Mâner</tooling_equipment_param_shankId>
<tooling_equipment_param_familyId>Id Familie</tooling_equipment_param_familyId>
<tooling_equipment_param_offsetLength>Offset Lungime</tooling_equipment_param_offsetLength>
<tooling_equipment_param_residualLife>Viața Reziduală</tooling_equipment_param_residualLife>
<tooling_equipment_param_disabled>Unealtă invalidă</tooling_equipment_param_disabled>
<tooling_equipment_param_broken>Unealtă stricată</tooling_equipment_param_broken>
<tooling_equipment_param_measured>Unealtă măsurată</tooling_equipment_param_measured>
<tooling_equipment_param_clockwiseRotation>Rotire în sensul acelor de ceasornic</tooling_equipment_param_clockwiseRotation>
<tooling_equipment_param_counterClockwiseRotation>Rotire în sens invers acelor de ceasornic</tooling_equipment_param_counterClockwiseRotation>
<tooling_equipment_param_offsetId1>Id Offset 1</tooling_equipment_param_offsetId1>
<tooling_equipment_param_offsetId2>Id Offset 2</tooling_equipment_param_offsetId2>
<tooling_equipment_param_offsetId3>Id Offset 3</tooling_equipment_param_offsetId3>
<tooling_equipment_param_tcpTable>ID Tabel-TCP asociat</tooling_equipment_param_tcpTable>
<tooling_equipment_param_gamma>Gamă Invertor</tooling_equipment_param_gamma>
<tooling_equipment_param_rotationType>Tip rotație</tooling_equipment_param_rotationType>
<tooling_equipment_param_maxLoad>Încărcare Maximă posibilă</tooling_equipment_param_maxLoad>
<tooling_equipment_param_minLoadPctAutoload>Încărcare-Min Parcurs Auto-adaptiv</tooling_equipment_param_minLoadPctAutoload>
<tooling_equipment_param_maxLoadPctAutoload>Încărcare-Max Parcurs Auto-adaptiv</tooling_equipment_param_maxLoadPctAutoload>
<tooling_equipment_param_dynamicCompensation>Compensare Dinamică</tooling_equipment_param_dynamicCompensation>
<tooling_equipment_param_minLoadDynamicCompensation>Încărcare-Min Compensare Dinamică</tooling_equipment_param_minLoadDynamicCompensation>
<tooling_equipment_param_maxLoadDynamicCompensation>Încărcare-Max Compensare Dinamică</tooling_equipment_param_maxLoadDynamicCompensation>
<tooling_equipment_param_nominalLife>Viața Nominală</tooling_equipment_param_nominalLife>
<tooling_equipment_param_reviveDelta>Δ Rectificare unealtă</tooling_equipment_param_reviveDelta>
<tooling_equipment_param_balluf>Rfid Id unealtă</tooling_equipment_param_balluf>
<tooling_equipment_param_magazineId>Id depozit</tooling_equipment_param_magazineId>
<tooling_equipment_param_positionId>Poziţie</tooling_equipment_param_positionId>
<tooling_equipment_auto_checkbox>Auto</tooling_equipment_auto_checkbox>
<tooling_family_param_name>Nume</tooling_family_param_name>
<tooling_family_param_id>Id Familie</tooling_family_param_id>
<tooling_family_param_toolType>Tip Ut.</tooling_family_param_toolType>
<tooling_family_param_leftSize>Dimensiune Stânga</tooling_family_param_leftSize>
<tooling_family_param_rightSize>Dimensiune Dreapta</tooling_family_param_rightSize>
<tooling_family_param_gamma>Gamă Invertor</tooling_family_param_gamma>
<tooling_family_param_rotationType>Tip rotație</tooling_family_param_rotationType>
<tooling_family_param_tcpTable>ID Tabel-Tcp asociat</tooling_family_param_tcpTable>
<tooling_family_param_maxSpeed>Viteza maximă</tooling_family_param_maxSpeed>
<tooling_family_param_maxLoad>Încărcare Maximă</tooling_family_param_maxLoad>
<tooling_family_param_minLoadPctAutoload>Încărcare Minimă</tooling_family_param_minLoadPctAutoload>
<tooling_family_param_maxLoadPctAutoload>Încărcare Maximă</tooling_family_param_maxLoadPctAutoload>
<tooling_family_param_dynamicCompensation>Coeficient de Uzură al uneltei</tooling_family_param_dynamicCompensation>
<tooling_family_param_minLoadDynamicCompensation>Încărcare Minimă</tooling_family_param_minLoadDynamicCompensation>
<tooling_family_param_maxLoadDynamicCompensation>Încărcare Maximă</tooling_family_param_maxLoadDynamicCompensation>
<tooling_family_param_lifeType>Tip viață</tooling_family_param_lifeType>
<tooling_family_param_nominalLife>Viața Nominală</tooling_family_param_nominalLife>
<tooling_family_param_reviveDelta>Δ rectificare unealtă</tooling_family_param_reviveDelta>
<siemens_tooling_equipment_cedgepar_id>Id Tăiș</siemens_tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_id>Id Offset</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_unitOfMeasure>Unitate de măsură</tooling_equipment_cedgepar_unitOfMeasure>
<tooling_equipment_cedgepar_residualLife>Viața Reziduală</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>Viața Nominală</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>Limită de Pre-Alarmă</tooling_equipment_cedgepar_preAlmLife>
<tooling_equipment_cedgepar_cuttingEdge>Tip Tăiș</tooling_equipment_cedgepar_cuttingEdge>
<tooling_equipment_cedgepar_lenght>Lungime</tooling_equipment_cedgepar_lenght>
<tooling_equipment_cedgepar_length>Lungime</tooling_equipment_cedgepar_length>
<tooling_equipment_cedgepar_radius>Rază</tooling_equipment_cedgepar_radius>
<tooling_equipment_cedgepar_wearLenght>Uzură Lungime</tooling_equipment_cedgepar_wearLenght>
<tooling_equipment_cedgepar_wearLength>Uzură Lungime</tooling_equipment_cedgepar_wearLength>
<tooling_equipment_cedgepar_wearRadius>Uzură Rază</tooling_equipment_cedgepar_wearRadius>
<tooling_equipment_cedgepar_wearDiameter>Uzură Diametru</tooling_equipment_cedgepar_wearDiameter>
<tooling_equipment_cedgepar_teeth>Nr. Dinți</tooling_equipment_cedgepar_teeth>
<tooling_equipment_cedgepar_cornerRadius>Rază Racord Unghiular</tooling_equipment_cedgepar_cornerRadius>
<tooling_equipment_cedgepar_geomLenght1>Lungime Geometrie Unealtă 1</tooling_equipment_cedgepar_geomLenght1>
<tooling_equipment_cedgepar_geomLenght2>Lungime Geometrie Unealtă 2</tooling_equipment_cedgepar_geomLenght2>
<tooling_equipment_cedgepar_geomLenght3>Lungime Geometrie Unealtă 3</tooling_equipment_cedgepar_geomLenght3>
<tooling_equipment_cedgepar_geomDeltaLenght1>Δ Lungime Unealtă 1</tooling_equipment_cedgepar_geomDeltaLenght1>
<tooling_equipment_cedgepar_geomDeltaLenght2>Δ Lungime Unealtă 2</tooling_equipment_cedgepar_geomDeltaLenght2>
<tooling_equipment_cedgepar_geomDeltaLenght3>Δ Lungime Unealtă 3</tooling_equipment_cedgepar_geomDeltaLenght3>
<tooling_equipment_cedgepar_adapterLenght1>Lungime Adaptor 1</tooling_equipment_cedgepar_adapterLenght1>
<tooling_equipment_cedgepar_adapterLenght2>Lungime Adaptor 2</tooling_equipment_cedgepar_adapterLenght2>
<tooling_equipment_cedgepar_adapterLenght3>Lungime Adaptor 3</tooling_equipment_cedgepar_adapterLenght3>
<tooling_equipment_cedgepar_v>V</tooling_equipment_cedgepar_v>
<tooling_equipment_cedgepar_vector1>Vector 1</tooling_equipment_cedgepar_vector1>
<tooling_equipment_cedgepar_vector2>Vector 2</tooling_equipment_cedgepar_vector2>
<tooling_equipment_cedgepar_vector3>Vector 3</tooling_equipment_cedgepar_vector3>
<tooling_equipment_cedgepar_outsideRadius>Raza externă</tooling_equipment_cedgepar_outsideRadius>
<tooling_equipment_cedgepar_ToolAngle>Unghi Unealtă</tooling_equipment_cedgepar_ToolAngle>
<tooling_equipment_cedgepar_Width>Lățime</tooling_equipment_cedgepar_Width>
<tooling_equipment_cedgepar_taperAngle>Unghi Con</tooling_equipment_cedgepar_taperAngle>
<tooling_equipment_cedgepar_tipAngle>Unghi Vârf</tooling_equipment_cedgepar_tipAngle>
<tooling_equipment_cedgepar_pitch>Pas</tooling_equipment_cedgepar_pitch>
<tooling_equipment_cedgepar_diameter>Diametru</tooling_equipment_cedgepar_diameter>
<tooling_equipment_cedgepar_geomSlotWidth>Lățime Gât</tooling_equipment_cedgepar_geomSlotWidth>
<tooling_equipment_cedgepar_geomPrjection>Excedent</tooling_equipment_cedgepar_geomPrjection>
<tooling_equipment_cedgepar_geomWearLenght1>Uzură Lungime 1</tooling_equipment_cedgepar_geomWearLenght1>
<tooling_equipment_cedgepar_geomWearLenght2>Uzură Lungime 2</tooling_equipment_cedgepar_geomWearLenght2>
<tooling_equipment_cedgepar_geomWearLenght3>Uzură Lungime 3</tooling_equipment_cedgepar_geomWearLenght3>
<tooling_equipment_cedgepar_WearDiameter>Uzură Diametru</tooling_equipment_cedgepar_WearDiameter>
<tooling_equipment_cedgepar_WearSlotWdth>Uzură Lățime Gât</tooling_equipment_cedgepar_WearSlotWdth>
<tooling_equipment_cedgepar_WearGeomPrjection>Uzură Excedent</tooling_equipment_cedgepar_WearGeomPrjection>
<tooling_equipment_cedgepar_corrAngle>Unghi de Corecție</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Lungime Braț</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>Raza Sferei</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_cedgepar_realRadius>Raza reală</tooling_equipment_cedgepar_realRadius>
<tooling_equipment_cedgepar_realLength>Lungime reală</tooling_equipment_cedgepar_realLength>
<tooling_equipment_list_select_none>Nici o selecție</tooling_equipment_list_select_none>
<tooling_equipment_list_select_generic>Generic</tooling_equipment_list_select_generic>
<tooling_equipment_list_select_timeLife>La Timp</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>La Contor</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_distanceLife>La Distanță</tooling_equipment_list_select_distanceLife>
<tooling_equipment_list_select_wearLife>La Uzură</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Rotire în sensul acelor de ceasornic</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Rotire în sens invers acelor de ceasornic</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_doubleRotation>Toate direcțiile de rotație</tooling_equipment_list_select_doubleRotation>
<tooling_equipment_list_select_millingTool>Unealtă pentru frezare</tooling_equipment_list_select_millingTool>
<tooling_equipment_list_select_ballNoseEndMill>Fr.cil.cap sfer.</tooling_equipment_list_select_ballNoseEndMill>
<tooling_equipment_list_select_conicalBallEnd>Fr.conic.cap sfer.</tooling_equipment_list_select_conicalBallEnd>
<tooling_equipment_list_select_endMill>Freză cu mâner</tooling_equipment_list_select_endMill>
<tooling_equipment_list_select_endMillCornerRounding>Freză cu mâner, margini rotunjite</tooling_equipment_list_select_endMillCornerRounding>
<tooling_equipment_list_select_angleHeadCutter>Freză cap unghiular</tooling_equipment_list_select_angleHeadCutter>
<tooling_equipment_list_select_cornRoundAngHdCut>Freză unghiul. margini rotunjite</tooling_equipment_list_select_cornRoundAngHdCut>
<tooling_equipment_list_select_facingTool>Freză pentru nivelare</tooling_equipment_list_select_facingTool>
<tooling_equipment_list_select_threadCutter>Freză pentru filetare</tooling_equipment_list_select_threadCutter>
<tooling_equipment_list_select_sideMill>Freză cu disc</tooling_equipment_list_select_sideMill>
<tooling_equipment_list_select_saw>Ferăstrău</tooling_equipment_list_select_saw>
<tooling_equipment_list_select_bevelledCutter>Freză trunchi con</tooling_equipment_list_select_bevelledCutter>
<tooling_equipment_list_select_bevelledCutterCorner>Fr. tr. con, margini rotunjite</tooling_equipment_list_select_bevelledCutterCorner>
<tooling_equipment_list_select_tapDieSinkCutter>Freză conică pentru matrițe</tooling_equipment_list_select_tapDieSinkCutter>
<tooling_equipment_list_select_drillThreadCut>Fr. burghiu/filetare</tooling_equipment_list_select_drillThreadCut>
<tooling_equipment_list_select_twistDrill>Vârf elicoidal</tooling_equipment_list_select_twistDrill>
<tooling_equipment_list_select_solidDrill>Vârf burghiu de plin</tooling_equipment_list_select_solidDrill>
<tooling_equipment_list_select_boringBar>Mașină de alezat</tooling_equipment_list_select_boringBar>
<tooling_equipment_list_select_centerDrill>Centrul de foraj</tooling_equipment_list_select_centerDrill>
<tooling_equipment_list_select_counterSink>Teșitor conic</tooling_equipment_list_select_counterSink>
<tooling_equipment_list_select_counterBore>Teșitor plan</tooling_equipment_list_select_counterBore>
<tooling_equipment_list_select_tap>Moș</tooling_equipment_list_select_tap>
<tooling_equipment_list_select_fineTap>Filet moș fin</tooling_equipment_list_select_fineTap>
<tooling_equipment_list_select_tapWhitworth>Filet moș WW</tooling_equipment_list_select_tapWhitworth>
<tooling_equipment_list_select_reamer>Alezor</tooling_equipment_list_select_reamer>
<tooling_equipment_list_select_slottingSaw>Ferăstrău pentru carieră</tooling_equipment_list_select_slottingSaw>
<tooling_equipment_list_select_3Dprobe>Palpator măsură 3D</tooling_equipment_list_select_3Dprobe>
<tooling_equipment_list_select_edgeFinder>Palpator margini</tooling_equipment_list_select_edgeFinder>
<tooling_equipment_list_select_monoProbe>Mono-palpator</tooling_equipment_list_select_monoProbe>
<tooling_equipment_list_select_lProbe>Palpator tip L</tooling_equipment_list_select_lProbe>
<tooling_equipment_list_select_starProbe>Palpator stea</tooling_equipment_list_select_starProbe>
<tooling_equipment_list_select_calibratingTool>Unealtă de calibrare</tooling_equipment_list_select_calibratingTool>
<tooling_equipment_list_select_stop>Identificare</tooling_equipment_list_select_stop>
<tooling_equipment_list_select_auxiliaryTools>Unelte auxiliare</tooling_equipment_list_select_auxiliaryTools>
<tooling_equipment_list_select_newfamily>Adăugați o nouă familie</tooling_equipment_list_select_newfamily>
<tooling_equipment_list_select_availfamilies>Familii disponibile:</tooling_equipment_list_select_availfamilies>
<physical_type_position_select_magazine_location>Clește în depozit</physical_type_position_select_magazine_location>
<physical_type_position_select_spindle>Mandrină</physical_type_position_select_spindle>
<physical_type_position_select_gripper>Clește</physical_type_position_select_gripper>
<physical_type_position_select_loader>Încărcător</physical_type_position_select_loader>
<physical_type_position_select_transfer_location>Poziție de transfer</physical_type_position_select_transfer_location>
<physical_type_position_select_loading_station>Stație de încărcare</physical_type_position_select_loading_station>
<physical_type_position_select_loading_point>Punct de încărcare</physical_type_position_select_loading_point>
<tooling_equipment_list_select_disk>Disc</tooling_equipment_list_select_disk>
<tooling_equipment_list_select_cutter50>Cuțitaș 50 %%</tooling_equipment_list_select_cutter50>
<tooling_equipment_list_select_cutter70>Cuțitaș 70 %%</tooling_equipment_list_select_cutter70>
<tooling_equipment_list_select_cutter80>Cuțitaș 80 %%</tooling_equipment_list_select_cutter80>
<tooling_equipment_list_select_blade1>Lama 1</tooling_equipment_list_select_blade1>
<tooling_equipment_list_select_blade2>Lama 2</tooling_equipment_list_select_blade2>
<tooling_equipment_list_select_blade3>Lama 3</tooling_equipment_list_select_blade3>
<tooling_equipment_list_select_blade4>Lama 4</tooling_equipment_list_select_blade4>
<tooling_equipment_list_select_blade5>Lama 5</tooling_equipment_list_select_blade5>
<tooling_equipment_list_select_blade6>Lama 6</tooling_equipment_list_select_blade6>
<tooling_equipment_list_select_blade7>Lama 7</tooling_equipment_list_select_blade7>
<tooling_equipment_list_select_blade300>Lama ⌀300</tooling_equipment_list_select_blade300>
<tooling_equipment_list_select_blade400>Lama ⌀400</tooling_equipment_list_select_blade400>
<tooling_equipment_list_select_blade500>Lama ⌀500</tooling_equipment_list_select_blade500>
<tooling_equipment_list_select_radioProbe1.1>Probe Radio 1 - Receptor 1</tooling_equipment_list_select_radioProbe1.1>
<tooling_equipment_list_select_radioProbe1.2>Probe Radio 2 - Receptor 1</tooling_equipment_list_select_radioProbe1.2>
<tooling_equipment_list_select_radioProbe1.3>Probe Radio 3 - Receptor 1</tooling_equipment_list_select_radioProbe1.3>
<tooling_equipment_list_select_radioProbe1.4>Probe Radio 4 - Receptor 1</tooling_equipment_list_select_radioProbe1.4>
<tooling_equipment_list_select_radioProbe2.1>Probe Radio 1 - Receptor 2</tooling_equipment_list_select_radioProbe2.1>
<tooling_equipment_list_select_radioProbe2.2>Probe Radio 2 - Receptor 2</tooling_equipment_list_select_radioProbe2.2>
<tooling_equipment_list_select_radioProbe2.3>Probe Radio 3 - Receptor 2</tooling_equipment_list_select_radioProbe2.3>
<tooling_equipment_list_select_radioProbe2.4>Probe Radio 4 - Receptor 2</tooling_equipment_list_select_radioProbe2.4>
<tooling_equipment_list_select_diskUltrasound10>Disc de ultrasunete, amplitudine 10%%</tooling_equipment_list_select_diskUltrasound10>
<tooling_equipment_list_select_diskUltrasound20>Disc de ultrasunete, amplitudine 20%%</tooling_equipment_list_select_diskUltrasound20>
<tooling_equipment_list_select_diskUltrasound30>Disc de ultrasunete, amplitudine 30%%</tooling_equipment_list_select_diskUltrasound30>
<tooling_equipment_list_select_diskUltrasound40>Disc de ultrasunete, amplitudine 40%%</tooling_equipment_list_select_diskUltrasound40>
<tooling_equipment_list_select_diskUltrasound50>Disc de ultrasunete, amplitudine 50%%</tooling_equipment_list_select_diskUltrasound50>
<tooling_equipment_list_select_diskUltrasound60>Disc de ultrasunete, amplitudine 60%%</tooling_equipment_list_select_diskUltrasound60>
<tooling_equipment_list_select_diskUltrasound70>Disc de ultrasunete, amplitudine 70%%</tooling_equipment_list_select_diskUltrasound70>
<tooling_equipment_list_select_diskUltrasound80>Disc de ultrasunete, amplitudine 80%%</tooling_equipment_list_select_diskUltrasound80>
<tooling_equipment_list_select_diskUltrasound90>Disc de ultrasunete, amplitudine 90%%</tooling_equipment_list_select_diskUltrasound90>
<tooling_equipment_list_select_diskUltrasound100>Disc de ultrasunete, amplitudine 100%%</tooling_equipment_list_select_diskUltrasound100>
<tooling_equipment_list_select_bladeUltrasound10>Lama cu ultrasunete, amplitudine 10%%</tooling_equipment_list_select_bladeUltrasound10>
<tooling_equipment_list_select_bladeUltrasound20>Lama cu ultrasunete, amplitudine 20%%</tooling_equipment_list_select_bladeUltrasound20>
<tooling_equipment_list_select_bladeUltrasound30>Lama cu ultrasunete, amplitudine 30%%</tooling_equipment_list_select_bladeUltrasound30>
<tooling_equipment_list_select_bladeUltrasound40>Lama cu ultrasunete, amplitudine 40%%</tooling_equipment_list_select_bladeUltrasound40>
<tooling_equipment_list_select_bladeUltrasound50>Lama cu ultrasunete, amplitudine 50%%</tooling_equipment_list_select_bladeUltrasound50>
<tooling_equipment_list_select_bladeUltrasound60>Lama cu ultrasunete, amplitudine 60%%</tooling_equipment_list_select_bladeUltrasound60>
<tooling_equipment_list_select_bladeUltrasound70>Lama cu ultrasunete, amplitudine 70%%</tooling_equipment_list_select_bladeUltrasound70>
<tooling_equipment_list_select_bladeUltrasound80>Lama cu ultrasunete, amplitudine 80%%</tooling_equipment_list_select_bladeUltrasound80>
<tooling_equipment_list_select_bladeUltrasound90>Lama cu ultrasunete, amplitudine 90%%</tooling_equipment_list_select_bladeUltrasound90>
<tooling_equipment_list_select_bladeUltrasound100>Lama cu ultrasunete, amplitudine 100%%</tooling_equipment_list_select_bladeUltrasound100>
<modal_confirm_title>Solicitare de confirmare</modal_confirm_title>
<modal_ok_button>Ok</modal_ok_button>
<modal_cancel_button>Anulați</modal_cancel_button>
<modal_confirm_delete_tool>Sigur doriți să ștergeți unealta?</modal_confirm_delete_tool>
<modal_confirm_delete_maintenances>Sigur doriți să anulați întreținerea selectată?</modal_confirm_delete_maintenances>
<modal_confirm_delete_note>Sigur doriți să ștergeți nota?</modal_confirm_delete_note>
<modal_confirm_delete_attachment>Sigur doriți să ștergeți acest atașament?</modal_confirm_delete_attachment>
<modal_confirm_delete_edge>Sigur doriți să ștergeți tăișul ?</modal_confirm_delete_edge>
<modal_confirm_delete_shank>Sigur doriți să ștergeți mâner?</modal_confirm_delete_shank>
<siemens_modal_confirm_delete_shank>Sigur doriți să ștergeți multifuncțiunea?</siemens_modal_confirm_delete_shank>
<modal_confirm_delete_tool_inshank>Sigur doriți să descărcați unealta din mâner?</modal_confirm_delete_tool_inshank>
<siemens_modal_confirm_delete_tool_inshank>Sigur doriți să descărcați unealta din multifuncțiune?</siemens_modal_confirm_delete_tool_inshank>
<modal_confirm_delete_alarms>Sigur doriți să ștergeți toate alarmele?</modal_confirm_delete_alarms>
<modal_confirm_perform_maintenance>Sunteți sigur că ați efectuat această întreținere?</modal_confirm_perform_maintenance>
<modal_confirm_delete_family>Sigur doriți să ștergeți familia?</modal_confirm_delete_family>
<maintenance_header_title>Manager Întrețineri</maintenance_header_title>
<maintenance_card_btn_save_note>Salvați</maintenance_card_btn_save_note>
<maintenance_card_btn_view_all_attach>Afișați toate fișierele</maintenance_card_btn_view_all_attach>
<maintenance_card_btn_hide_all_attach>Afișați numai cele mai recente fișiere</maintenance_card_btn_hide_all_attach>
<maintenance_card_btn_add_attach>Adăugați un fișier</maintenance_card_btn_add_attach>
<maintenance_card_btn_view_all_note>Afișați toate notele</maintenance_card_btn_view_all_note>
<maintenance_card_btn_hide_all_note>Afișați numai ultimele note</maintenance_card_btn_hide_all_note>
<maintenance_card_label_btn_footer>Marcați ca realizată</maintenance_card_label_btn_footer>
<maintenance_header_label_procedure>Căutați întreținerea după nume</maintenance_header_label_procedure>
<maintenance_header_label_procedure_placeholder>Numele întreținerii ...</maintenance_header_label_procedure_placeholder>
<maintenance_header_label_state>Stare</maintenance_header_label_state>
<maintenance_label_create_intervention>Creați o intervenție de întreținere</maintenance_label_create_intervention>
<maintenance_label_disable-maintenance>Selectați o întreținere ...</maintenance_label_disable-maintenance>
<maintenance_state_expired>Expirată</maintenance_state_expired>
<maintenance_state_closed>Închis</maintenance_state_closed>
<maintenance_state_running>Neexpirată</maintenance_state_running>
<maintenance_state_ending>În Termen limită</maintenance_state_ending>
<maintenance_table_header_counter>Contor</maintenance_table_header_counter>
<maintenance_table_header_deadline>Termen limită</maintenance_table_header_deadline>
<maintenance_table_header_state>Stare</maintenance_table_header_state>
<maintenance_table_header_title>Titlu</maintenance_table_header_title>
<maintenance_card_label_date_timestamp>Adăugat %s la %s</maintenance_card_label_date_timestamp>
<maintenance_card_btn_cancel_modify_note>Ștergeți</maintenance_card_btn_cancel_modify_note>
<maintenance_card_btn_save_modify_note>Salvați</maintenance_card_btn_save_modify_note>
<maintenance_date_neverdone>Nu s-a efectuat nicio operațiune de întreținere</maintenance_date_neverdone>
<maintenance_date_justdone>Ultima intervenție efectuată acum câteva minute, de la: %s</maintenance_date_justdone>
<maintenance_date_hours>Ultima intervenție efectuată acum %d ore, de la: %s</maintenance_date_hours>
<maintenance_date_days>Ultima intervenție efectuată %d zile în urmă, de la: %s</maintenance_date_days>
<maintenance_date_fixeddate>Ultima intervenție efectuată în data: %s de la: %s</maintenance_date_fixeddate>
<maintenance_card_created_timestamp>Întreținere creată la data %s la ora %s</maintenance_card_created_timestamp>
<maintenance_card_attachments>Fișiere atașate</maintenance_card_attachments>
<maintenance_card_notes>Notă</maintenance_card_notes>
<create_maintenance_lbl_title_window>Crearea intervenției de întreținere</create_maintenance_lbl_title_window>
<create_maintenance_lbl_title>Titlu</create_maintenance_lbl_title>
<create_maintenance_btn_cancel>Anulați</create_maintenance_btn_cancel>
<create_maintenance_lbl_date>Data</create_maintenance_lbl_date>
<create_maintenance_lbl_description>Descriere</create_maintenance_lbl_description>
<create_maintenance_lbl_end_time>Ora</create_maintenance_lbl_end_time>
<create_maintenance_lbl_typology>Tip</create_maintenance_lbl_typology>
<create_maintenance_lbl_repeat>Repetați la interval de</create_maintenance_lbl_repeat>
<create_maintenance_repeat_day>Zile</create_maintenance_repeat_day>
<create_maintenance_repeat_hour>Ore</create_maintenance_repeat_hour>
<create_maintenance_repeat_minutes>Minute</create_maintenance_repeat_minutes>
<create_maintenance_repeat_months>Luni</create_maintenance_repeat_months>
<create_maintenance_lbl_fixeddate>Data Fixă</create_maintenance_lbl_fixeddate>
<create_maintenance_lbl_temporal>Timp</create_maintenance_lbl_temporal>
<create_maintenance_btn_add_confirm>Creați Întreținere</create_maintenance_btn_add_confirm>
<create_maintenance_btn_edit_confirm>Schimbați Întreținerea</create_maintenance_btn_edit_confirm>
<production_header_title>Manager de Producție</production_header_title>
<production_box_video_button_cms>Active</production_box_video_button_cms>
<production_box_video_button_cnc>NC</production_box_video_button_cnc>
<production_box_video_button_prod>Prod</production_box_video_button_prod>
<production_softkeys_prefered_header_title>Softkey Preferate</production_softkeys_prefered_header_title>
<card_axes_production_axes_tab_interp>Interp.</card_axes_production_axes_tab_interp>
<card_axes_production_axes_tab_om>Absol.</card_axes_production_axes_tab_om>
<card_axes_production_axes_tab_goto>To-Go</card_axes_production_axes_tab_goto>
<card_axes_production_axes_tab_prog>Prog.</card_axes_production_axes_tab_prog>
<card_production_rapid>Rapid:</card_production_rapid>
<card_production_work>Work:</card_production_work>
<card_job_production_offset_length>Lungime reală:</card_job_production_offset_length>
<card_job_production_offset_radius>Raza reală:</card_job_production_offset_radius>
<card_job_production_offset_diameter>Diametrul reală:</card_job_production_offset_diameter>
<card_job_production_origin>Origine activă:</card_job_production_origin>
<card_job_production_offset>Corector activ:</card_job_production_offset>
<siemens_card_job_production_offset>Tăiș activ:</siemens_card_job_production_offset>
<card_job_production_iso_lines>Linie iso:</card_job_production_iso_lines>
<card_job_production_message>Mesaj:</card_job_production_message>
<production_label_select_prg>Selectați un program</production_label_select_prg>
<production_label_select_auto_mode>Selectați modul Auto pentru a executa un program</production_label_select_auto_mode>
<production_softkeys_prefered_sel_in_progr>Selectarea în curs</production_softkeys_prefered_sel_in_progr>
<button_production_go_to_selection>Mergeți la selecție</button_production_go_to_selection>
<modal_load_program_lbl_title_window>Program-Loader</modal_load_program_lbl_title_window>
<modal_load_program_lbl_box_select_program>Selectați un program</modal_load_program_lbl_box_select_program>
<modal_load_program_btn_upload_program>Încărcați și activați</modal_load_program_btn_upload_program>
<modal_load_program_btn_load_program>Activ</modal_load_program_btn_load_program>
<modal_load_program_search_placeholder>Căutați un program după nume</modal_load_program_search_placeholder>
<modal_load_program_creation_date>Data creării:</modal_load_program_creation_date>
<modal_load_program_last_change_date>Data unealtă modif:</modal_load_program_last_change_date>
<modal_load_program_lbl_img_not_found>Previzualizarea nu este disponibilă</modal_load_program_lbl_img_not_found>
<modal_load_program_lbl_upload_all_files>Încărcați toate fișierele în dosarul selectat</modal_load_program_lbl_upload_all_files>
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
<alarm_history_header_title>Manager Istoric Alarme</alarm_history_header_title>
<alarm_history_body_filter>Filtrați alarmele după titlu</alarm_history_body_filter>
<alarm_history_body_filter_placeholder>Titlu ...</alarm_history_body_filter_placeholder>
<alarm_history_body_filter_source>Sursă</alarm_history_body_filter_source>
<alarm_history_body_date_range>Interval date</alarm_history_body_date_range>
<alarm_history_body_user>Utilizatori</alarm_history_body_user>
<alarms_history_table_source>Sursă</alarms_history_table_source>
<alarms_history_table_title>Titlu</alarms_history_table_title>
<alarms_history_table_date>Data</alarms_history_table_date>
<alarms_history_table_user>Utilizatori</alarms_history_table_user>
<alarm_history_label_select_alarms>Selectați o alarmă ...</alarm_history_label_select_alarms>
<alarm_history_users_not_user>Niciun-Utilizator</alarm_history_users_not_user>
<create_user_lbl_title_window>Modificați utilizatorul</create_user_lbl_title_window>
<create_user_lbl_firstname>Nume</create_user_lbl_firstname>
<create_user_lbl_lastname>Pronume</create_user_lbl_lastname>
<create_user_lbl_password>Parola</create_user_lbl_password>
<create_user_lbl_username>Username</create_user_lbl_username>
<create_user_btn_add_confirm>Adăugaţi</create_user_btn_add_confirm>
<create_user_btn_edit_confirm>Modificaţi</create_user_btn_edit_confirm>
<create_user_btn_cancel>Anulați</create_user_btn_cancel>
<create_user_psw_equals>Parolele trebuie să fie diferite</create_user_psw_equals>
<password_user_lbl_actpassword>Parola curentă</password_user_lbl_actpassword>
<password_user_lbl_newpassword>Parola nouă</password_user_lbl_newpassword>
<password_user_lbl_title_window>Schimbați parola: %s</password_user_lbl_title_window>
<role_user_lbl_title_window>Schimbați rolul: %s</role_user_lbl_title_window>
<modal_confirm_delete_user>Sigur doriți să eliminați utilizatorul?</modal_confirm_delete_user>
<users_label_create_users>Adăugați un utilizator nou</users_label_create_users>
<users_header_title>Manager Utilizatori</users_header_title>
<users_header_label_userfilter>Filtrați utilizatorii după numele de utilizator</users_header_label_userfilter>
<users_header_label_userfilter_placeholder>Username…</users_header_label_userfilter_placeholder>
<users_table_header_avatar>Avatar</users_table_header_avatar>
<users_table_header_username>Username</users_table_header_username>
<users_table_header_firstname>Nume</users_table_header_firstname>
<users_table_header_lastname>Pronume</users_table_header_lastname>
<users_table_header_language>Limba</users_table_header_language>
<users_table_header_role>Funcţie</users_table_header_role>
<footer_tooltip_production>Manager de producție</footer_tooltip_production>
<footer_tooltip_tooling>Tool Manager</footer_tooltip_tooling>
<footer_tooltip_maintenance>Manager de întreținere mașină</footer_tooltip_maintenance>
<footer_tooltip_alarms>Istoricul alarmelor</footer_tooltip_alarms>
<footer_tooltip_report>Raportul și starea mașinii</footer_tooltip_report>
<footer_tooltip_utilities>Utilități și software externe</footer_tooltip_utilities>
<footer_tooltip_scada>Pagini Scada</footer_tooltip_scada>
<footer_tooltip_under_hood>Deschide / Închide zona sub capotă</footer_tooltip_under_hood>
<footer_tooltip_job_editor>Job Editor</footer_tooltip_job_editor>
<footer_tooltip_users>User Manager</footer_tooltip_users>
<header_tooltip_btn_close>Închideți CMS-Step</header_tooltip_btn_close>
<header_tooltip_btn_minimize>Minimizați CMS-Step</header_tooltip_btn_minimize>
<header_tooltip_btn_help>Vizualizați Ajutor mașină</header_tooltip_btn_help>
<header_tooltip_btn_mchinfo>Vizualizați informațiile despre mașină</header_tooltip_btn_mchinfo>
<header_tooltip_btn_usrinfo>Vizualizați Informațiile utilizator</header_tooltip_btn_usrinfo>
<header_tooltip_btn_nc_maintenance>Deschideți / Închideți lista întrețineri expirate</header_tooltip_btn_nc_maintenance>
<header_tooltip_close_uth>Închideți zona sub capotă</header_tooltip_close_uth>
<header_tooltip_swipedown>Închideți zona sub capotă</header_tooltip_swipedown>
<header_tooltip_nc_error>CN în Eroare. Deschideți / Închideți lista alarmelor</header_tooltip_nc_error>
<header_tooltip_nc_idle>CN în Așteptare de Comenzi</header_tooltip_nc_idle>
<header_tooltip_nc_running>CN în Execuția Comenzilor</header_tooltip_nc_running>
<header_tooltip_Nc_Process>Informații despre proces</header_tooltip_Nc_Process>
<header_tooltip_mainstat_ko>Dispozitivele mașinii nu sunt în regulă</header_tooltip_mainstat_ko>
<header_tooltip_mainstat_ok>Mașina în funcțiune</header_tooltip_mainstat_ok>
<header_tooltip_powstat_ko>Mașina Nu este pregătită să funcționeze</header_tooltip_powstat_ko>
<header_tooltip_powstat_ok>Mașina este pregătită să lucreze</header_tooltip_powstat_ok>
<header_tooltip_emergency>Butoane de urgență apăsate</header_tooltip_emergency>
<header_tooltip_key>Cheia nu a fost introdusă</header_tooltip_key>
<header_tooltip_power-on>Axele nu sunt la putere</header_tooltip_power-on>
<header_tooltip_protections>Protecțiile de siguranță nu sunt în regulă</header_tooltip_protections>
<header_tooltip_settings-mode>Modul setting activ</header_tooltip_settings-mode>
<header_tooltip_air-flow>Aerul comprimat nu este în regulă</header_tooltip_air-flow>
<header_tooltip_zeroing>Este necesară resetarea axei</header_tooltip_zeroing>
<heads_tooltip_abrasive>Utilizat abraziv</heads_tooltip_abrasive>
<heads_tooltip_active>Cap activ</heads_tooltip_active>
<heads_tooltip_load>Încărcare curentă</heads_tooltip_load>
<heads_tooltip_mpa>Presiunea curentă</heads_tooltip_mpa>
<heads_tooltip_name>Numele capului</heads_tooltip_name>
<heads_tooltip_override>Procentaj de suprascriere</heads_tooltip_override>
<heads_tooltip_ovminus>Reduceți suprascrierea</heads_tooltip_ovminus>
<heads_tooltip_ovplus>Creșteți suprascrierea</heads_tooltip_ovplus>
<heads_tooltip_rpm>Viteza curentă</heads_tooltip_rpm>
<heads_tooltip_tool>Id-ul uneltei montate</heads_tooltip_tool>
<heads_tooltip_vacuum>Vacuum sub cap</heads_tooltip_vacuum>
<heads_tooltip_process>Proces Cn Proprietar al capului</heads_tooltip_process>
<process_tooltip_select>Selectați procesul %d</process_tooltip_select>
<job_item_part_program>Part Program</job_item_part_program>
<job_item_macro_cms>Macro CMS</job_item_macro_cms>
<job_item_text>Text</job_item_text>
<job_item_pause>Pauză</job_item_pause>
<job_item_delay>Întârziere</job_item_delay>
<job_item_origin>Început</job_item_origin>
<job_item_end_program>Sfârșitul Programului</job_item_end_program>
</root>
-336
View File
@@ -1,336 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!-- language Name -->
<language_it>中文</language_it>
<!-- Header -->
<header_maintainance_request>維護請求</header_maintainance_request>
<support_summary>呼氣:</support_summary>
<header_maintainance_request_explanation>有一個程序要執行</header_maintainance_request_explanation>
<alarm_ribbon_title_more_items>有許多活動的警報</alarm_ribbon_title_more_items>
<warning_ribbon_title_more_items>有很多積極的警告</warning_ribbon_title_more_items>
<process_label_name>處理</process_label_name>
<!-- User-Info + Login window -->
<userinfo_lbl_title>用戶設置</userinfo_lbl_title>
<userinfo_btn_logout>註銷</userinfo_btn_logout>
<userinfo_lbl_language>語言</userinfo_lbl_language>
<userinfo_btn_cancel>取消</userinfo_btn_cancel>
<userinfo_btn_save>保存</userinfo_btn_save>
<login_lbl_title>用戶登錄</login_lbl_title>
<login_lbl_username>用戶名</login_lbl_username>
<login_lbl_password>密碼</login_lbl_password>
<login_btn_login>登錄</login_btn_login>
<login_lbl_invalidusername>錯誤的用戶名</login_lbl_invalidusername>
<login_lbl_invalidpassword>錯誤的密碼</login_lbl_invalidpassword>
<!-- Alarm-list + Alarm-Detail window -->
<alarms_btn_history_show>顯示警報歷史</alarms_btn_history_show>
<alarms_refresh_all>全部刷新</alarms_refresh_all>
<alarm_item_btn_show>顯示</alarm_item_btn_show>
<alarm_ribbon_title_1_item>報警</alarm_ribbon_title_1_item>
<warning_ribbon_title_1_item>警告</warning_ribbon_title_1_item>
<alarm_detail_lbl_status>狀態</alarm_detail_lbl_status>
<alarm_manual_lbl_title>巫師</alarm_manual_lbl_title>
<alarm_manual_lbl_description>報警解決</alarm_manual_lbl_description>
<alarm_manual_btn_start>開始</alarm_manual_btn_start>
<alarm_detail_btn_show_manual>顯示手冊</alarm_detail_btn_show_manual>
<alarm_detail_btn_ask_help>詢問幫助</alarm_detail_btn_ask_help>
<alarm_detail_btn_refresh>刷新</alarm_detail_btn_refresh>
<alarm_btn_back_to_list>回到報警列表</alarm_btn_back_to_list>
<alarm_status_active>活性</alarm_status_active>
<alarm_status_deleted>刪除</alarm_status_deleted>
<!-- Machine-Info window -->
<machineinfo_lbl_title>機器信息</machineinfo_lbl_title>
<machine_serial_number>機器識別:</machine_serial_number>
<machine_installation_date>安裝日期:</machine_installation_date>
<machineinfo_model_nc>數控模型:</machineinfo_model_nc>
<machineinfo_serial_nc>數控系列號:</machineinfo_serial_nc>
<machineinfo_firmware_version>數字固件版本:</machineinfo_firmware_version>
<machineinfo_plc_version>Plc版本:</machineinfo_plc_version>
<machineinfo_current_language>數控選材語言:</machineinfo_current_language>
<machineinfo_processes>數控配置的過程:</machineinfo_processes>
<machineinfo_datetime>數控時間戳:</machineinfo_datetime>
<machineinfo_umeas>數量單位測量:</machineinfo_umeas>
<machineinfo_server_cms_version>CMS-Active 服務器版本:</machineinfo_server_cms_version>
<machineinfo_core_cms_version>CMS-Active 核心版本:</machineinfo_core_cms_version>
<machineinfo_client_version>CMS-Active 客戶端版本:</machineinfo_client_version>
<!-- Head Info -->
<head_label_rpm></head_label_rpm>
<head_label_tool>工具</head_label_tool>
<head_label_load>加載</head_label_load>
<head_label_pressure>兆帕</head_label_pressure>
<head_label_abrasive>磨料</head_label_abrasive>
<head_label_gmin>克/分鐘</head_label_gmin>
<head_label_vacuum>真空</head_label_vacuum>
<head_label_bar>酒吧</head_label_bar>
<!-- Nc Softkey -->
<jog_menu_axis>軸:</jog_menu_axis>
<jog_menu_inc>增量:</jog_menu_inc>
<!-- User Softkey -->
<sfk_category_1>通用軟鍵</sfk_category_1>
<sfk_category_2>鎖/真空區域</sfk_category_2>
<sfk_category_3>頭部和冷卻裝置</sfk_category_3>
<sfk_category_4>工作模式</sfk_category_4>
<sfk_category_5>裝備和保護</sfk_category_5>
<sfk_category_6>加載/卸載</sfk_category_6>
<sfk_category_7>用戶子程序</sfk_category_7>
<softkey_confirm>你確定?</softkey_confirm>
<confirm_request_confirm>確認</confirm_request_confirm>
<confirm_request_cancel>取消</confirm_request_cancel>
<!-- Utilities -->
<utilities_header_label>公用事业和外部软件</utilities_header_label>
<!-- HMI Command DEMO -->
<hmi_cmd_demo_1>數據</hmi_cmd_demo_1>
<hmi_cmd_demo_2>Nc過程</hmi_cmd_demo_2>
<hmi_cmd_demo_3>警報</hmi_cmd_demo_3>
<hmi_cmd_demo_4></hmi_cmd_demo_4>
<hmi_cmd_demo_5>字節內存</hmi_cmd_demo_5>
<hmi_cmd_demo_6>程式</hmi_cmd_demo_6>
<hmi_cmd_demo_7>雜誌</hmi_cmd_demo_7>
<hmi_cmd_demo_8>家庭/小丑</hmi_cmd_demo_8>
<hmi_cmd_demo_9>工具</hmi_cmd_demo_9>
<!-- HMI Command SIEMENS -->
<hmi_cmd_siemens_1></hmi_cmd_siemens_1>
<hmi_cmd_siemens_2>參數</hmi_cmd_siemens_2>
<hmi_cmd_siemens_3>程序</hmi_cmd_siemens_3>
<hmi_cmd_siemens_4>項目經理</hmi_cmd_siemens_4>
<hmi_cmd_siemens_5>診斷</hmi_cmd_siemens_5>
<hmi_cmd_siemens_6>建立</hmi_cmd_siemens_6>
<!-- HMI Command FANUC -->
<hmi_cmd_fanuc_1>波什</hmi_cmd_fanuc_1>
<hmi_cmd_fanuc_2>程式</hmi_cmd_fanuc_2>
<hmi_cmd_fanuc_3>抵消</hmi_cmd_fanuc_3>
<hmi_cmd_fanuc_4>系統</hmi_cmd_fanuc_4>
<hmi_cmd_fanuc_5>信息</hmi_cmd_fanuc_5>
<!-- Tool Manager - Op. Selection -->
<tooling_title_label>刀具管理</tooling_title_label>
<store_title_magazine>雜誌</store_title_magazine>
<store_title_spindle>紡錘</store_title_spindle>
<launch_tools>工具</launch_tools>
<launch_shanks>尚克斯</launch_shanks>
<siemens_launch_shanks>多刀</siemens_launch_shanks>
<launch_hands>雜誌的位置</launch_hands>
<launch_families>家庭</launch_families>
<siemens_launch_families>工具組</siemens_launch_families>
<!-- Tool Manager - General Labels -->
<tooling_equipment_label_box>工具管理器</tooling_equipment_label_box>
<tooling_equipment_label_search>選擇一個工具:</tooling_equipment_label_search>
<tooling_equipment_label_add>創建新工具</tooling_equipment_label_add>
<tooling_equipment_button_modify>編輯</tooling_equipment_button_modify>
<tooling_equipment_button_cancel>取消</tooling_equipment_button_cancel>
<tooling_equipment_button_save>保存</tooling_equipment_button_save>
<tooling_equipment_button_add></tooling_equipment_button_add>
<tooling_edgesdataequip_skill_tools>前沿</tooling_edgesdataequip_skill_tools>
<tooling_edgesdataequip_new>新的尖端</tooling_edgesdataequip_new>
<tooling_parameters_tab>參數</tooling_parameters_tab>
<tooling_equipment_editlabel>編輯工具編號%d - s</tooling_equipment_editlabel>
<tooling_equipment_newlabel>新的工具創建</tooling_equipment_newlabel>
<tooling_edgesdata_label_edit>編輯前沿編號。 d</tooling_edgesdata_label_edit>
<tooling_edgesdata_label_new>新的尖端創作</tooling_edgesdata_label_new>
<tooling_shanks_label_box>Shanks經理</tooling_shanks_label_box>
<tooling_shanks_label_search>選擇一個柄:</tooling_shanks_label_search>
<tooling_shanks_label_add>創建新的Shank</tooling_shanks_label_add>
<tooling_shanks_name>Shank no。 d</tooling_shanks_name>
<siemens_tooling_shanks_label_box>多工具管理器</siemens_tooling_shanks_label_box>
<siemens_tooling_shanks_label_search>選擇一個Multitool</siemens_tooling_shanks_label_search>
<siemens_tooling_shanks_label_add>創建新的Multitool</siemens_tooling_shanks_label_add>
<siemens_tooling_shanks_name>Multitool no。 d</siemens_tooling_shanks_name>
<tooling_childtoolsshanks_skill_tools>工具編號%d</tooling_childtoolsshanks_skill_tools>
<tooling_childtoolsshanks_new>新工具</tooling_childtoolsshanks_new>
<tooling_shanks_editlabel>編輯Shanks沒有。 d</tooling_shanks_editlabel>
<siemens_tooling_shanks_editlabel>編輯Multitool編號。 d</siemens_tooling_shanks_editlabel>
<tooling_childtoolsshank_select_tool>選擇一個工具來添加</tooling_childtoolsshank_select_tool>
<tooling_shanks_label_new>新的Shank創作</tooling_shanks_label_new>
<siemens_tooling_shanks_label_new>新的Multitool創作</siemens_tooling_shanks_label_new>
<tooling_shanks_edittoollabel>編輯工具編號%d的小腿%d</tooling_shanks_edittoollabel>
<siemens_tooling_shanks_edittoollabel>編輯工具編號%d的Multitoold</siemens_tooling_shanks_edittoollabel>
<tooling_equipment_list_category_general>泛型:</tooling_equipment_list_category_general>
<siemens_tooling_equipment_list_category_family>工具 - 群組:</siemens_tooling_equipment_list_category_family>
<tooling_equipment_list_category_family>家庭:</tooling_equipment_list_category_family>
<tooling_equipment_list_category_state>工具狀態:</tooling_equipment_list_category_state>
<tooling_equipment_list_category_cooling>冷卻液:</tooling_equipment_list_category_cooling>
<tooling_equipment_list_category_magazine>雜誌:</tooling_equipment_list_category_magazine>
<tooling_equipment_list_category_head>主軸:</tooling_equipment_list_category_head>
<tooling_equipment_list_category_life>生活:</tooling_equipment_list_category_life>
<tooling_equipment_list_category_geometry>幾何:</tooling_equipment_list_category_geometry>
<tooling_shanks_list_category_general>泛型:</tooling_shanks_list_category_general>
<tooling_shanks_list_category_state>小腿狀態:</tooling_shanks_list_category_state>
<siemens_tooling_shanks_list_category_state>Multitool狀態:</siemens_tooling_shanks_list_category_state>
<tooling_shanks_list_category_magazine>雜誌:</tooling_shanks_list_category_magazine>
<tooling_equipment_param_id>工具ID</tooling_equipment_param_id>
<tooling_equipment_param_toolType>工具類型</tooling_equipment_param_toolType>
<tooling_equipment_param_lifeType>生活類型</tooling_equipment_param_lifeType>
<tooling_equipment_param_familyName>名稱</tooling_equipment_param_familyName>
<tooling_equipment_param_name>名稱</tooling_equipment_param_name>
<tooling_equipment_param_childId>孩子ID</tooling_equipment_param_childId>
<tooling_equipment_param_isEnabled>工具插入</tooling_equipment_param_isEnabled>
<tooling_equipment_param_isActive>工具活動</tooling_equipment_param_isActive>
<tooling_equipment_param_isInhibited>工具被禁止</tooling_equipment_param_isInhibited>
<tooling_equipment_param_inFixedPlace>工具在固定的地方</tooling_equipment_param_inFixedPlace>
<tooling_equipment_param_isMeasured>測量工具</tooling_equipment_param_isMeasured>
<tooling_equipment_param_inChangeTool>刀具更換中的工具</tooling_equipment_param_inChangeTool>
<tooling_equipment_param_isInUse>正在使用的工具</tooling_equipment_param_isInUse>
<tooling_equipment_param_preAlarm>預報警中的工具</tooling_equipment_param_preAlarm>
<tooling_equipment_param_cooling1>冷卻1</tooling_equipment_param_cooling1>
<tooling_equipment_param_cooling2>冷卻2</tooling_equipment_param_cooling2>
<tooling_equipment_param_magazinePositionType>雜誌位置類型</tooling_equipment_param_magazinePositionType>
<tooling_equipment_param_leftSize>左尺寸</tooling_equipment_param_leftSize>
<tooling_equipment_param_rightSize>合適的尺碼</tooling_equipment_param_rightSize>
<tooling_equipment_param_rotation>旋轉類型</tooling_equipment_param_rotation>
<tooling_equipment_param_maxSpeed>最大速度</tooling_equipment_param_maxSpeed>
<tooling_equipment_param_maxAcceleration>最大加速度</tooling_equipment_param_maxAcceleration>
<tooling_equipment_cedgepar_id>最尖端的ID</tooling_equipment_cedgepar_id>
<tooling_equipment_cedgepar_residualLife>剩餘生活</tooling_equipment_cedgepar_residualLife>
<tooling_equipment_cedgepar_nominalLife>名義壽命</tooling_equipment_cedgepar_nominalLife>
<tooling_equipment_cedgepar_preAlmLife>預警限制</tooling_equipment_cedgepar_preAlmLife>
<tooling_equipment_cedgepar_cuttingEdge>尖端類型</tooling_equipment_cedgepar_cuttingEdge>
<tooling_equipment_cedgepar_lenght>Lenght</tooling_equipment_cedgepar_lenght>
<tooling_equipment_cedgepar_radius>半徑</tooling_equipment_cedgepar_radius>
<tooling_equipment_cedgepar_wearLenght>Δ長度</tooling_equipment_cedgepar_wearLenght>
<tooling_equipment_cedgepar_wearRadius>Δ半徑</tooling_equipment_cedgepar_wearRadius>
<tooling_equipment_cedgepar_teeth>Theeth號</tooling_equipment_cedgepar_teeth>
<tooling_equipment_cedgepar_cornerRadius>角半徑</tooling_equipment_cedgepar_cornerRadius>
<tooling_equipment_cedgepar_geomLenght1>幾何長度1</tooling_equipment_cedgepar_geomLenght1>
<tooling_equipment_cedgepar_geomLenght2>幾何長度2</tooling_equipment_cedgepar_geomLenght2>
<tooling_equipment_cedgepar_geomLenght3>幾何長度3</tooling_equipment_cedgepar_geomLenght3>
<tooling_equipment_cedgepar_geomDeltaLenght1>幾何Δ長度1</tooling_equipment_cedgepar_geomDeltaLenght1>
<tooling_equipment_cedgepar_geomDeltaLenght2>幾何Δ長度2</tooling_equipment_cedgepar_geomDeltaLenght2>
<tooling_equipment_cedgepar_geomDeltaLenght3>幾何Δ長度3</tooling_equipment_cedgepar_geomDeltaLenght3>
<tooling_equipment_cedgepar_adapterLenght1>適配器長度1</tooling_equipment_cedgepar_adapterLenght1>
<tooling_equipment_cedgepar_adapterLenght2>適配器長度2</tooling_equipment_cedgepar_adapterLenght2>
<tooling_equipment_cedgepar_adapterLenght3>適配器長度3</tooling_equipment_cedgepar_adapterLenght3>
<tooling_equipment_cedgepar_v>V</tooling_equipment_cedgepar_v>
<tooling_equipment_cedgepar_vector1>矢量1</tooling_equipment_cedgepar_vector1>
<tooling_equipment_cedgepar_vector2>矢量2</tooling_equipment_cedgepar_vector2>
<tooling_equipment_cedgepar_vector3>矢量3</tooling_equipment_cedgepar_vector3>
<tooling_equipment_cedgepar_outsideRadius>外半徑</tooling_equipment_cedgepar_outsideRadius>
<tooling_equipment_cedgepar_ToolAngle>工具角度</tooling_equipment_cedgepar_ToolAngle>
<tooling_equipment_cedgepar_Width>寬度</tooling_equipment_cedgepar_Width>
<tooling_equipment_cedgepar_taperAngle>錐角</tooling_equipment_cedgepar_taperAngle>
<tooling_equipment_cedgepar_tipAngle>提示角度</tooling_equipment_cedgepar_tipAngle>
<tooling_equipment_cedgepar_pitch>瀝青</tooling_equipment_cedgepar_pitch>
<tooling_equipment_cedgepar_diameter>直徑</tooling_equipment_cedgepar_diameter>
<tooling_equipment_cedgepar_geomSlotWidth>槽寬</tooling_equipment_cedgepar_geomSlotWidth>
<tooling_equipment_cedgepar_geomPrjection>幾何投影</tooling_equipment_cedgepar_geomPrjection>
<tooling_equipment_cedgepar_geomWearLenght1>幾何Δ長度1</tooling_equipment_cedgepar_geomWearLenght1>
<tooling_equipment_cedgepar_geomWearLenght2>幾何Δ長度1</tooling_equipment_cedgepar_geomWearLenght2>
<tooling_equipment_cedgepar_geomWearLenght3>幾何Δ長度1</tooling_equipment_cedgepar_geomWearLenght3>
<tooling_equipment_cedgepar_WearDiameter>Δ直徑</tooling_equipment_cedgepar_WearDiameter>
<tooling_equipment_cedgepar_WearSlotWdth>Δ槽寬</tooling_equipment_cedgepar_WearSlotWdth>
<tooling_equipment_cedgepar_WearGeomPrjection>幾何磨損投影</tooling_equipment_cedgepar_WearGeomPrjection>
<tooling_equipment_cedgepar_corrAngle>角度修正</tooling_equipment_cedgepar_corrAngle>
<tooling_equipment_cedgepar_boomLenght>Boom長度</tooling_equipment_cedgepar_boomLenght>
<tooling_equipment_cedgepar_ballRadius>球半徑</tooling_equipment_cedgepar_ballRadius>
<tooling_equipment_list_select_none>沒有</tooling_equipment_list_select_none>
<tooling_equipment_list_select_timeLife>時間</tooling_equipment_list_select_timeLife>
<tooling_equipment_list_select_countLife>計數</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_wearLife>穿</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Clockwhise腐爛。</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>計數器Clockwhise腐爛。</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_millingTool>銑削工具</tooling_equipment_list_select_millingTool>
<tooling_equipment_list_select_ballNoseEndMill>球頭立銑刀</tooling_equipment_list_select_ballNoseEndMill>
<tooling_equipment_list_select_conicalBallEnd>錐形球端</tooling_equipment_list_select_conicalBallEnd>
<tooling_equipment_list_select_endMill>立銑刀</tooling_equipment_list_select_endMill>
<tooling_equipment_list_select_endMillCornerRounding>立銑刀圓角</tooling_equipment_list_select_endMillCornerRounding>
<tooling_equipment_list_select_angleHeadCutter>角頭銑刀</tooling_equipment_list_select_angleHeadCutter>
<tooling_equipment_list_select_cornRoundAngHdCut>Corn.round.ang.hd.cut</tooling_equipment_list_select_cornRoundAngHdCut>
<tooling_equipment_list_select_facingTool>面對工具</tooling_equipment_list_select_facingTool>
<tooling_equipment_list_select_threadCutter>螺紋刀具</tooling_equipment_list_select_threadCutter>
<tooling_equipment_list_select_sideMill>側銑刀</tooling_equipment_list_select_sideMill>
<tooling_equipment_list_select_saw></tooling_equipment_list_select_saw>
<tooling_equipment_list_select_bevelledCutter>斜切刀</tooling_equipment_list_select_bevelledCutter>
<tooling_equipment_list_select_bevelledCutterCorner>斜切刀角落</tooling_equipment_list_select_bevelledCutterCorner>
<tooling_equipment_list_select_tapDieSinkCutter>點擊。模切刀</tooling_equipment_list_select_tapDieSinkCutter>
<tooling_equipment_list_select_drillThreadCut>鑽和螺紋切割。</tooling_equipment_list_select_drillThreadCut>
<tooling_equipment_list_select_twistDrill>麻花鑽</tooling_equipment_list_select_twistDrill>
<tooling_equipment_list_select_solidDrill>實心鑽</tooling_equipment_list_select_solidDrill>
<tooling_equipment_list_select_boringBar>無聊的酒吧</tooling_equipment_list_select_boringBar>
<tooling_equipment_list_select_centerDrill>中心演練</tooling_equipment_list_select_centerDrill>
<tooling_equipment_list_select_counterSink>埋頭</tooling_equipment_list_select_counterSink>
<tooling_equipment_list_select_counterBore></tooling_equipment_list_select_counterBore>
<tooling_equipment_list_select_tap>龍頭</tooling_equipment_list_select_tap>
<tooling_equipment_list_select_fineTap>細水龍頭</tooling_equipment_list_select_fineTap>
<tooling_equipment_list_select_tapWhitworth>龍頭</tooling_equipment_list_select_tapWhitworth>
<tooling_equipment_list_select_reamer>惠氏</tooling_equipment_list_select_reamer>
<tooling_equipment_list_select_slottingSaw>絞刀</tooling_equipment_list_select_slottingSaw>
<tooling_equipment_list_select_3Dprobe>開槽鋸</tooling_equipment_list_select_3Dprobe>
<tooling_equipment_list_select_edgeFinder>3D探測器</tooling_equipment_list_select_edgeFinder>
<tooling_equipment_list_select_monoProbe>尋邊器</tooling_equipment_list_select_monoProbe>
<tooling_equipment_list_select_lProbe>單聲道探頭</tooling_equipment_list_select_lProbe>
<tooling_equipment_list_select_starProbe>L探頭</tooling_equipment_list_select_starProbe>
<tooling_equipment_list_select_calibratingTool>星探針</tooling_equipment_list_select_calibratingTool>
<tooling_equipment_list_select_stop>校準工具</tooling_equipment_list_select_stop>
<tooling_equipment_list_select_auxiliaryTools>停止</tooling_equipment_list_select_auxiliaryTools>
<!-- /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ Tooltips /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ -->
<!-- Footer -->
<footer_tooltip_production>產品經理</footer_tooltip_production>
<footer_tooltip_tooling>工具管理器</footer_tooltip_tooling>
<footer_tooltip_maintenance>維護經理</footer_tooltip_maintenance>
<footer_tooltip_alarms>歷史報警</footer_tooltip_alarms>
<footer_tooltip_report>報告和機器狀態</footer_tooltip_report>
<footer_tooltip_utilities>實用程序和外部軟件</footer_tooltip_utilities>
<footer_tooltip_scada>斯卡達頁</footer_tooltip_scada>
<footer_tooltip_under_hood>打開/關閉引擎蓋區域</footer_tooltip_under_hood>
<!-- Header -->
<header_tooltip_btn_close>關閉CMS-Step</header_tooltip_btn_close>
<header_tooltip_btn_minimize>最小化CMS-Step</header_tooltip_btn_minimize>
<header_tooltip_btn_help>顯示機器幫助</header_tooltip_btn_help>
<header_tooltip_btn_mchinfo>顯示機器信息</header_tooltip_btn_mchinfo>
<header_tooltip_btn_usrinfo>顯示用戶信息</header_tooltip_btn_usrinfo>
<header_tooltip_btn_nc_maintenance>打開/關閉過期維護清單</header_tooltip_btn_nc_maintenance>
<header_tooltip_close_uth>關閉引擎蓋區域</header_tooltip_close_uth>
<header_tooltip_swipedown>關閉引擎蓋區域</header_tooltip_swipedown>
<!-- Nc status icon -->
<header_tooltip_nc_error>NC處於錯誤狀態。 打開/關閉活動警報列表</header_tooltip_nc_error>
<header_tooltip_nc_idle>NC在空閒狀態</header_tooltip_nc_idle>
<header_tooltip_nc_running>NC處於運行狀態</header_tooltip_nc_running>
<!-- Header-Processes status -->
<header_tooltip_Nc_Process>Nc進程信息</header_tooltip_Nc_Process>
<!-- Startup Icons -->
<header_tooltip_mainstat_ko>機器設備不好</header_tooltip_mainstat_ko>
<header_tooltip_mainstat_ok>機器運作</header_tooltip_mainstat_ok>
<header_tooltip_powstat_ko>機器沒有準備好工作</header_tooltip_powstat_ko>
<header_tooltip_powstat_ok>機器可以工作</header_tooltip_powstat_ok>
<header_tooltip_emergency>按下緊急按鈕</header_tooltip_emergency>
<header_tooltip_key>未插入安全密鑰</header_tooltip_key>
<header_tooltip_power-on>軸不處於功率狀態</header_tooltip_power-on>
<header_tooltip_protections>安全保護措施不好</header_tooltip_protections>
<header_tooltip_settings-mode>設置模式激活</header_tooltip_settings-mode>
<header_tooltip_air-flow>氣流壓力不好</header_tooltip_air-flow>
<header_tooltip_zeroing>軸需要調零</header_tooltip_zeroing>
<!-- Heads -->
<heads_tooltip_abrasive>使用磨料</heads_tooltip_abrasive>
<heads_tooltip_active>頭跑步</heads_tooltip_active>
<heads_tooltip_load>實際負載</heads_tooltip_load>
<heads_tooltip_mpa>實際壓力</heads_tooltip_mpa>
<heads_tooltip_name>頭名</heads_tooltip_name>
<heads_tooltip_override>覆蓋百分比</heads_tooltip_override>
<heads_tooltip_ovminus>減少覆蓋</heads_tooltip_ovminus>
<heads_tooltip_ovplus>增加覆蓋</heads_tooltip_ovplus>
<heads_tooltip_rpm>實際速度</heads_tooltip_rpm>
<heads_tooltip_tool>已安裝的工具ID</heads_tooltip_tool>
<heads_tooltip_vacuum>頭部真空</heads_tooltip_vacuum>
<heads_tooltip_process>所有者Nc進程</heads_tooltip_process>
<!-- Process selection -->
<process_tooltip_select>選擇進程</process_tooltip_select>
</root>
+1
View File
@@ -67,6 +67,7 @@ namespace Step.Utils
case "xHundred": return 27;
case "xThousand": return 28;
case "overstroke": return 30;
case "feedByPass": return 31;
default: return -1;
}
}
+4 -28
View File
@@ -49,9 +49,7 @@ namespace Step.App_Start
SignalRConfig(app);
var directoryBrowsing = ConfigurationManager.AppSettings["enableDirectoryBrowsing"] == "true";
// Create directories if they don't exist
CreateDirectories();
// Check if web site directory exists
if (!Directory.Exists(WEBSITE_DIRECTORY))
ExceptionManager.Manage(ERROR_LEVEL.FATAL, "Main window directory not found!");
@@ -80,7 +78,7 @@ namespace Step.App_Start
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
// Bearer token expiration time
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(365),
//TODO: In modalità di produzione impostare AllowInsecureHttp = false
AllowInsecureHttp = true
};
@@ -108,7 +106,8 @@ namespace Step.App_Start
map.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()
{
Provider = new SignalROAuthBearerProvider()
Provider = new SignalROAuthBearerProvider(),
AuthenticationType = AUTHENTICATION_TYPE
});
var hubConfiguration = new HubConfiguration
{
@@ -138,29 +137,6 @@ namespace Step.App_Start
return isAvailable;
}
private void CreateDirectories()
{
if (!Directory.Exists(MAINTENANCE_ATTACHMENT_PATH))
Directory.CreateDirectory(MAINTENANCE_ATTACHMENT_PATH);
if (!Directory.Exists(ALARM_ATTACHMENT_PATH))
Directory.CreateDirectory(ALARM_ATTACHMENT_PATH);
if (!Directory.Exists(TEMP_PP_FOLDER))
Directory.CreateDirectory(TEMP_PP_FOLDER);
if (!Directory.Exists(PART_PRG_IMAGES))
Directory.CreateDirectory(PART_PRG_IMAGES);
if (!Directory.Exists(JOB_TMP_DIRECTORY))
Directory.CreateDirectory(JOB_TMP_DIRECTORY);
if (!Directory.Exists(QUEUE_TMP_FOLDER))
Directory.CreateDirectory(QUEUE_TMP_FOLDER);
if (!Directory.Exists(SCADA_DIRECTORY))
Directory.CreateDirectory(SCADA_DIRECTORY);
}
}
}
//app.Map("/signalr", map =>
+78 -62
View File
@@ -1,14 +1,18 @@
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
using Microsoft.AspNet.SignalR.Owin;
using Step.App_Start;
using Step.Config;
using Step.Database.Controllers;
using Step.Model.DatabaseModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Security.Principal;
using static Step.Config.ServerConfig;
using static Step.Model.Constants;
using static Step.Listeners.SignalRStaticObjects;
namespace Step.Attributes
{
@@ -32,75 +36,87 @@ namespace Step.Attributes
return base.AuthorizeHubConnection(hubDescriptor, request);
}
protected override bool UserAuthorized(IPrincipal user)
{
if (!base.UserAuthorized(user))
return false;
// Get Claims from context
ClaimsIdentity identity = user.Identity as ClaimsIdentity;
// Get user id stored in the bearer token
var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY);
// Get machine unique id stored in the bearer token
var machineId = identity.Claims.FirstOrDefault(c => c.Type == MACHINE_ID_KEY);
//User data not found -> not authorized
if (userId == null || machineId == null)
return false;
// User data not found -> not authorized
if (userId == null || machineId == null)
return false;
// check authorization
if (!CheckAuthorization(Convert.ToInt32(machineId.Value), Convert.ToInt32(userId.Value), FunctionAccess))
return false;
return true;
}
public override bool AuthorizeHubMethodInvocation(IHubIncomingInvokerContext hubIncomingInvokerContext, bool appliesToMethod)
{
return base.AuthorizeHubMethodInvocation(hubIncomingInvokerContext, appliesToMethod);
}
private bool CheckAuthorization(int machineId, int userId, string functionName)
{
// Check if the machine is the same where the user logged in
if (machineId != MachineConfig.MachineId)
return false;
MachineUserModel machineUser = new MachineUserModel();
using (MachinesUsersController machineUsersController = new MachinesUsersController())
var connectionId = hubIncomingInvokerContext.Hub.Context.ConnectionId;
var request = hubIncomingInvokerContext.Hub.Context.Request;
var token = request.QueryString.Get("Authorization");
if (!string.IsNullOrEmpty(token))
{
// Find machineUser data and joined to user data, role data, machine data
machineUser = machineUsersController.FindByUserId(machineId, userId);
}
using (FunctionsAccessController acController = new FunctionsAccessController())
{
// Read from db function levels
FunctionAccessModel functionAccess = acController.FindEnabledFunctionByName(functionName);
if (functionAccess != null && ServerConfigController.CheckAreaStatus(functionAccess.Area))
{
if (Action == ACTIONS.READ)
{ // Check read permissions
if (functionAccess.ReadLevelMin > machineUser.Role.Level)
return false; // Not authorized
}
else
{ // Check write permissions
if (functionAccess.WriteLevelMin > machineUser.Role.Level)
return false; // Not authorized
}
}
else
// check authorization
if (!CheckAuthorization(FunctionAccess, token, out int machineId, out int userId))
return false;
// Authorized
var claims = new ClaimsIdentity(AUTHENTICATION_TYPE);
claims.AddClaim(new Claim(USER_ID_KEY, userId.ToString()));
claims.AddClaim(new Claim(MACHINE_ID_KEY, machineId.ToString()));
Dictionary<string, object> _DCI = new Dictionary<string, object>();
_DCI.Add("server.User", claims as IPrincipal);
hubIncomingInvokerContext.Hub.Context = new HubCallerContext(new ServerRequest(_DCI), connectionId);
return true;
}
return false;
}
private bool CheckAuthorization(string functionName, string token, out int machineId, out int userId)
{
machineId = userId = 0;
using (SessionsController sessionsController = new SessionsController())
{
// Find user session on this machine
SessionModel session = sessionsController.FindSessionByToken(token);
if (session == null)
return false;
// Check if the machine is the same where the user logged in
if (session.MachineUser.MachineId != MachineConfig.MachineId)
return false;
machineId = session.MachineUser.MachineId;
userId = session.MachineUser.UserId;
MachineUserModel machineUser = new MachineUserModel();
using (MachinesUsersController machineUsersController = new MachinesUsersController())
{
// Find machineUser data and joined to user data, role data, machine data
machineUser = machineUsersController.FindByIdWithData(session.MachineUserId);
}
using (FunctionsAccessController acController = new FunctionsAccessController())
{
// Read from db function levels
FunctionAccessModel functionAccess = acController.FindEnabledFunctionByName(functionName);
if (functionAccess != null && ServerConfigController.CheckAreaStatus(functionAccess.Area))
{
if (Action == ACTIONS.READ)
{ // Check read permissions
if (functionAccess.ReadLevelMin > machineUser.Role.Level)
return false; // Not authorized
}
else
{ // Check write permissions
if (functionAccess.WriteLevelMin > machineUser.Role.Level)
return false; // Not authorized
}
// Check if PLC bit exists
if (functionAccess.PlcId != 0)
{
// Check if functionality is enabled by PLC
var functionalityIsEnabled = LastRuntimeFunctionality.Where(x => x.Name == functionName).FirstOrDefault();
if (functionalityIsEnabled == null || functionalityIsEnabled.Enabled == false)
return false;
}
}
else
return false;
// Authorized
return true;
}
}
}
}
}
+1 -1
View File
@@ -19,7 +19,7 @@ namespace Step
{
public string FunctionAccess;
public ACTIONS Action;
protected override bool IsAuthorized(HttpActionContext actionContext)
protected override bool IsAuthorized(HttpActionContext actionContext)
{
// Get token from headers
if (actionContext.Request.Headers.Authorization == null)
+1 -6
View File
@@ -235,11 +235,6 @@ namespace Step.Controllers.SignalR
throw new HubException(cmsError.localizationKey);
}
}
public void QuitServerApp()
{
if (ServerStartupConfig.AutoOpenCmsClient)
MessageServices.Current.Publish(SEND_STOP_SERVER);
}
}
}
+55 -12
View File
@@ -5,8 +5,9 @@ using Step.NC;
using Step.Provider;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
@@ -15,6 +16,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using static Step.Model.Constants;
using static Step.Config.ServerConfig;
namespace Step.Controllers.WebApi
{
@@ -22,11 +24,24 @@ namespace Step.Controllers.WebApi
public class ApiAlarmController : ApiController
{
[Route("paginated"), HttpPost]
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.ALARM_CMD, Action = ACTIONS.READ)]
public IHttpActionResult GetDataPaginated([FromBody]DTOAlarmsFilterModel filter)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
var identity = User.Identity as ClaimsIdentity;
// Find user id from the bearer token
var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY);
bool canDelete = false;
using (MachinesUsersController machineUserController = new MachinesUsersController())
{
RoleModel role = machineUserController.GetUserRole(MachineConfig.MachineId, Convert.ToInt32(userId.Value));
canDelete = machineUserController.RoleIsAdminOrHigher(role.RoleId);
}
// Retrieve plc messages
Dictionary<int, string> plcMessages = LanguageController.GetPlcAlarmsTranslations(filter.Language)
.ToDictionary(
x => Convert.ToInt32(x.Key.Split('_').Last()), // This function return "alarm_id" as id, i need only the id number
@@ -40,7 +55,8 @@ namespace Step.Controllers.WebApi
return Ok(new DTOPaginatedAlarmsModel()
{
Alarms = alarms,
Pages = pages
Pages = pages,
CanDelete = canDelete
});
}
}
@@ -63,20 +79,33 @@ namespace Step.Controllers.WebApi
List<DTOAlarmHistoricModel> alarms = alarm.GetPaginatedWithFilter(filter.Title, filter.Sources, 0, int.MaxValue, filter.StartDate.Value, filter.EndDate, filter.UserIds, plcMessages, out int pages);
Dictionary<string, string> AlmPLCTras = LanguageController.GetPlcAlarmsTranslations(filter.Language);
string csv = "";
StringBuilder csv = new StringBuilder();
//string csv = "";
foreach (DTOAlarmHistoricModel model in alarms)
{
var alm = "";
if(model.Source == ALARM_SOURCE.PLC)
if (model.Source == ALARM_SOURCE.PLC)
alm = AlmPLCTras["alarm_" + model.AlarmId];
csv += model.ToCsvString(alm) + Environment.NewLine;
//csv += model.ToCsvString(alm) + Environment.NewLine;
csv.Append(model.ToCsvString(alm) + Environment.NewLine);
}
//Parallel.ForEach(alarms, model =>
//{
// var alm = "";
// if (model.Source == ALARM_SOURCE.PLC)
// alm = AlmPLCTras["alarm_" + model.AlarmId];
// csv.Append(model.ToCsvString(alm) + Environment.NewLine);
//});
//Console.WriteLine("CSV string 2 " + st.ElapsedMilliseconds);
//st.Restart();
var stream = new MemoryStream(Encoding.UTF8.GetBytes(csv),0, Encoding.UTF8.GetBytes(csv).Length, false,true);
var stream = new MemoryStream(Encoding.UTF8.GetBytes(csv.ToString()),0, Encoding.UTF8.GetBytes(csv.ToString()).Length, false,true);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.GetBuffer())
@@ -86,13 +115,26 @@ namespace Step.Controllers.WebApi
FileName = "AlarmExport.csv"
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv");
return ResponseMessage(result);
}
}
[Route("delete"), HttpDelete]
public IHttpActionResult DeleteAlarms()
{
using (AlarmsController alarmController = new AlarmsController())
{
alarmController.EmptyAlarms();
return Ok();
}
}
[Route("data"), HttpPost]
public IHttpActionResult GetAlarmsData(int pageSize)
public IHttpActionResult GetAlarmsData(int pageSize)
{
using (AlarmsController alarmController = new AlarmsController())
{
@@ -106,6 +148,7 @@ namespace Step.Controllers.WebApi
{
public List<DTOAlarmHistoricModel> Alarms;
public int Pages;
public bool CanDelete;
}
#region Note
@@ -13,11 +13,8 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Security.Claims;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using static Step.Config.ServerConfig;
using static Step.Model.Constants;
@@ -65,7 +62,7 @@ namespace Step.Controllers.WebApi
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
CmsError cmsError = ncHandler.GetMaintenanceDataById(dbMaint.MaintenanceId, Convert.ToInt32(userId.Value), out DTOMaintenanceModel maintenance);
CmsError cmsError = ncHandler.GetMaintenanceDataById(dbMaint.MaintenanceId, Convert.ToInt32(userId.Value), out DTOMaintenanceModel maintenance);
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
@@ -45,7 +45,8 @@ namespace Step.Controllers.WebApi
ProdEnabled = SoftwareProdConfig.Enabled,
ProdPath = SoftwareProdConfig.Path,
ExtSoftwares = ExtSoftwaresConfig,
Autorun = ServerStartupConfig.AutoOpenCmsClient
Autorun = ServerStartupConfig.AutoOpenCmsClient,
MgiOption = NcConfig.MgiOption
};
return Ok(clientConfiguration);
@@ -106,10 +107,10 @@ namespace Step.Controllers.WebApi
{
var configuredAlarm = InitialAlarmsConfig.Where(x => x.PlcId == i).FirstOrDefault();
if (configuredAlarm == null)
if (configuredAlarm == null)
restoreIsEnabled = false;
else
restoreIsEnabled = configuredAlarm.RestoreIsActive;
restoreIsEnabled = configuredAlarm.RestoreIsActive;
alarmsConfig.Add(new DTOAlarmConfigModel
{
@@ -134,5 +135,11 @@ namespace Step.Controllers.WebApi
return Ok(toolTableConfiguration);
}
}
[Route("contact"), HttpGet]
public IHttpActionResult GetContact()
{
return Ok(ContactConfig);
}
}
}
+5 -4
View File
@@ -119,18 +119,19 @@ namespace Step.Controllers.WebApi
return BadRequest(cmsError.localizationKey);
}
foreach (FormItem item in formItems)
ActiveProgramDataModel programData = new ActiveProgramDataModel();
foreach (FormItem item in formItems)
{
if (item.IsAFile)
{
if (item.ParameterName == "main")
if (item.ParameterName == "main")
{
File.WriteAllBytes(TEMP_PP_FOLDER + item.FileName, item.Data);
mainPPName = item.FileName;
programs.Add(item.FileName);
// Upload main program
CmsError cmsError = ncFileHandler.UploadPartProgramAndActivate(TEMP_PP_FOLDER, item.FileName, out ActiveProgramDataModel programData);
CmsError cmsError = ncFileHandler.UploadPartProgramAndActivate(TEMP_PP_FOLDER, item.FileName, out programData);
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
}
@@ -147,7 +148,7 @@ namespace Step.Controllers.WebApi
else if (item.ParameterName == "image")
{
// Upload image
File.WriteAllBytes(PART_PRG_IMAGES + item.FileName, item.Data);
File.WriteAllBytes(PART_PRG_IMAGES + Path.GetFileNameWithoutExtension(programData.Path) + Path.GetExtension(item.FileName), item.Data);
imageUploaded = true;
}
}
@@ -252,7 +252,8 @@ namespace Step.Controllers.WebApi
return BadRequest(cmsError.localizationKey);
offsetData.Id = offsetId;
return Ok(offsetData);
return Ok(offsetData);
}
}
@@ -842,7 +843,6 @@ namespace Step.Controllers.WebApi
return Ok(importStatus);
}
}
[Route("selfadaptivepathstep"), HttpGet]
+10 -9
View File
@@ -8,14 +8,14 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using static CMS_CORE_Library.Models.DataStructures;
using static CMS_CORE_Library.Models.DataStructures;
using static Step.Config.ServerConfig;
using static Step.Model.Constants;
namespace Step.Controllers.WebApi
{
[RoutePrefix("api/scada")]
public class ScadaController : ApiController
public class ScadaController : ApiController
{
[Route("list"), HttpGet]
public IHttpActionResult GetScadaList()
@@ -29,24 +29,25 @@ namespace Step.Controllers.WebApi
[Route("subscribe/{scadaId:int}"), HttpGet]
public IHttpActionResult SubscribeScada(int scadaId)
{
// Select schema
ScadaSchemaModel selectedScadaSchema = ConfiguredScadaSchema
// Find schema
ScadaSchemaModel selectedScadaSchema = ConfiguredScadaSchema
.Where(x => x.Id == scadaId)
.FirstOrDefault();
if (selectedScadaSchema == null)
return BadRequest();
// Add to the subscriber list
SubscribedScada.Add(selectedScadaSchema);
using (NcHandler ncHandler = new NcHandler())
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
// Read the selected scada data
CmsError cmsError = ncHandler.ReadScadaData(selectedScadaSchema, out DTOScadaModel values);
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
// Add to the subscriber list
SubscribedScada.Add(selectedScadaSchema);
return Ok(values);
}
}
@@ -54,7 +55,7 @@ namespace Step.Controllers.WebApi
[Route("unsubscribe/{scadaId:int}"), HttpGet]
public IHttpActionResult UnsubscribeScada(int scadaId)
{
using (NcHandler ncHandler = new NcHandler())
using (NcHandler ncHandler = new NcHandler())
{
// Find scada by id
ScadaSchemaModel scadaToRemove = SubscribedScada
+5 -4
View File
@@ -12,6 +12,7 @@ using System.Web.Http;
using System.Web.Helpers;
using static Step.Model.Constants;
using static Step.Utils.LanguageController;
using Step.Utils;
namespace Step.Controllers.WebApi
{
@@ -40,6 +41,9 @@ namespace Step.Controllers.WebApi
// Send to the clients the id of the disconnected user
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
context.Clients.All.logout(new { id = userId.Value });
StepLogger.LogMessage("Logout: " + userId.Value + "Date:" + DateTime.Now, ERROR_LEVEL.INFO);
return Ok();
}
@@ -176,10 +180,7 @@ namespace Step.Controllers.WebApi
if (user == null)
return NotFound();
if (user.Username == "cms")
return BadRequest();
usersController.DeleteUser(user);
return Ok();
+1 -1
View File
@@ -31,4 +31,4 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.*")]
+1 -1
View File
@@ -5,7 +5,7 @@ namespace Step.Provider
{
public class SignalROAuthBearerProvider : OAuthBearerAuthenticationProvider
{
public override Task RequestToken(OAuthRequestTokenContext context)
public override Task RequestToken(OAuthRequestTokenContext context)
{
var token = context.Request.Query.Get("Authorization");
+87 -45
View File
@@ -7,9 +7,10 @@
#define AppName "CMS Active"
#define SCMAppName "Maestro Active cnc"
#define FolderName "Active"
#define FolderName "Active"
#define SCMIcoName "SCM.ico"
#define MyAppVersion "1.0"
#define MyAppVersion "1.2"
#define MyAppPublisher "CMS"
#define MyAppURL "https://www.scmgroup.com/it/cms"
#define MyAppExeName "Active.exe"
@@ -17,9 +18,9 @@
#define ProjectPath "C:\Workspace\CMS_STEP\Step\"
#define MySourcePath "C:\Workspace\CMS_STEP\Step\bin"
#define WwwRootPath "C:\Workspace\CMS_STEP\Step\wwwroot"
#define IconsPath "C:\Workspace\CMS_STEP\Step\Desktop_Link\"
#define SCMIcoName "SCM.ico"
#define MyOtherAppPath "C:\CMS"
#define IconsPath "C:\Workspace\CMS_STEP\Step\Desktop_Link\"
#define InvDialPath "C:\Workspace\CMS_INVERTER_DIAGNOSIS\CMSInverterDiagnosis\bin\Release\"
#define SinumerikPath1 "{pf}\Siemens\Sinumerik\HMIsl\siemens\sinumerik\hmi\autostart\"
#define SinumerikPath2 "C:\Siemens\Sinumerik\HMIsl\siemens\sinumerik\hmi\autostart\"
#define SinumerikPath3 "{pf}\Siemens\MotionControl\siemens\sinumerik\hmi\autostart\"
@@ -52,8 +53,6 @@ VersionInfoCompany={#MyAppPublisher}
VersionInfoTextVersion={#MyAppVersion}
VersionInfoCopyright={#MyAppPublisher}
DefaultDirName = C:\CMS\{#FolderName}\{#FolderName}
;WizardImageFile=C:\Programmi\Inno Setup 5\WizModernImage-IS.bmp
;WizardSmallImageFile=C:\Programmi\Inno Setup 5\CMS.bmp
WindowVisible=false
PrivilegesRequired=admin
@@ -63,7 +62,6 @@ Name: custom; Description: CMS installation; Flags: iscustom
; Set NC types, this types are used to configure server config file
[Components]
Name: Demo; Description: {#AppName} {cm:ForDemoNC}; Types: custom; Flags: exclusive
Name: Fanuc; Description: {#AppName} {cm:ForFanucNC}; Types: custom; Flags: exclusive
Name: Osai; Description: {#AppName} {cm:ForOsaiNC}; Types: custom; Flags: exclusive
Name: Siemens; Description: {#AppName} {cm:ForSiemensNC}; Types: custom; Flags: exclusive
@@ -99,66 +97,69 @@ italian.InstallingDotNet = Installando .Net
english.InstallingDotNet = Installing .Net
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Components: Demo Fanuc Osai Siemens
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Demo Fanuc Osai Siemens
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Demo Fanuc Osai
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Components: Fanuc Osai Siemens
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Siemens
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai
Name: sinumerikicons; Description: {cm:CreateSinumerikIcons}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Siemens
[Files]
Source: "{#MySourcePath}\Active.exe"; DestDir: "{app}"; Flags: ignoreversion
; Path to exe resources (dll, xml, config)
Source: "{#MySourcePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#MySourcePath}\*.xml"; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#MySourcePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens
Source: "{#MySourcePath}\*.xml"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens
Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens
; Configuration files
Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: confirmoverwrite ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: ignoreversion; Components: Fanuc Osai Siemens; Check: GetOverwriteConfig;
; Osai Library
Source: "{#MySourcePath}\CndexLinkDotNet.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Osai
; Languages
Source: "{#MySourcePath}\Language\*.*"; DestDir: "{app}\Language\"; Flags: ignoreversion; Components: Osai
Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion; Components: Fanuc Osai Siemens
; Client copy
Source: "{#MySourcePath}\Client\x64\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#MySourcePath}\Client\x64\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens; AfterInstall: DeleteLocalStorage
; WWWRoot Files
Source: "{#WwwRootPath}\favicon.ico"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#WwwRootPath}\index.html"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#WwwRootPath}\favicon.ico"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Fanuc Osai Siemens
Source: "{#WwwRootPath}\index.html"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Fanuc Osai Siemens
; WWWRoot Directories
Source: "{#WwwRootPath}\dist\*"; DestDir: "{app}\view\dist\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#WwwRootPath}\libs\*"; DestDir: "{app}\view\libs\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#WwwRootPath}\assets\*"; DestDir: "{app}\view\assets\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#WwwRootPath}\scripts\*"; DestDir: "{app}\view\scripts\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens
Source: "{#WwwRootPath}\dist\*"; DestDir: "{app}\view\dist\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
Source: "{#WwwRootPath}\libs\*"; DestDir: "{app}\view\libs\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
Source: "{#WwwRootPath}\assets\*"; DestDir: "{app}\view\assets\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
Source: "{#WwwRootPath}\scripts\*"; DestDir: "{app}\view\scripts\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
; SCM Icon
Source: {#IconsPath}{#SCMIcoName}; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens; Check: GetStyleOption;
Source: {#IconsPath}{#SCMIcoName}; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens; Check: GetStyleOption;
;.Net Installer
Source: {#DotNetInstallerPath}\{#DotNetInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
;Check: FrameworkIsNotInstalled
Source: {#MariaDBInstallerPath}\{#MariaDBInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
; Fanuc scripts
Source: "{#ProjectPath}Utility\*"; DestDir: "..\{app}\Utility\"; Flags: recursesubdirs ignoreversion; Components: Fanuc
; --- UTILS
; Fanuc scripts - TEAMVIEWER
Source: "{#ProjectPath}\Utility\*"; DestDir: "{app}\..\Utility\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
; Inverter Dialog
Source: "{#InvDialPath}\*"; DestDir: "{app}\..\Utility\Cms_Inverter_Diagnosis\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
[Icons]
; Default icons
Name: {group}\{#AppName}; Filename: {app}\{#MyAppExeName}; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption;
Name: {userdesktop}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption;
Name: {userstartup}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: startupicon; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption;
Name: {group}\{#AppName}; Filename: {app}\{#MyAppExeName}; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption;
Name: {userdesktop}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption;
Name: {userstartup}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: startupicon; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption;
; Siemens startup icon with parameters "-start ..."
Name: {group}\{#AppName}; Filename: {code:SiemensPath}{#SinumerikAppExeName}; Parameters: -start {app}\{#MyAppExeName}; IconFilename: "{app}\{#MyAppExeName}"; Comment: {#AppName}; Components: Siemens; Check: NOT GetStyleOption;
Name: {userdesktop}\{#AppName}; Filename: {code:SiemensPath}{#SinumerikAppExeName}; Parameters: -start {app}\{#MyAppExeName}; IconFilename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; Comment: {#AppName}; Components: Siemens; Check: NOT GetStyleOption;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {code:SiemensPath}{#SinumerikAppExeName}; Parameters: -start {app}\{#MyAppExeName}; IconFilename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon; Comment: {#AppName}; Components: Siemens; Check: NOT GetStyleOption;
; SCM ICONS
; Default icons
Name: {group}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption;
Name: {userdesktop}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: desktopicon; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: quicklaunchicon; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption;
Name: {userstartup}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: startupicon; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption;
Name: {group}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption;
Name: {userdesktop}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: desktopicon; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: quicklaunchicon; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption;
Name: {userstartup}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: startupicon; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption;
; SCM Siemens startup icon with parameters "-start ..."
Name: {group}\{#SCMAppName}; Filename: {#IconsPath}{#SinumerikAppExeName}; Parameters: -start {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Comment: {#SCMAppName}; Components: Siemens; Check: GetStyleOption;
@@ -167,10 +168,10 @@ Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#SCMAppName}; File
[Run]
; Install .net
Filename: {tmp}\{#DotNetInstallerName}; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingDotNet};
Filename: {tmp}\{#DotNetInstallerName}; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingDotNet}; Check: NetFrameworkNeedInstall
;Check: NetFrameworkIsMissing
; Install MariaDb
Filename: "msiexec.exe"; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingMariaDB}; Parameters: "/i {tmp}\{#MariaDBInstallerName}"
Filename: "msiexec.exe"; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingMariaDB}; Parameters: "/i {tmp}\{#MariaDBInstallerName}"; Check: CheckHeidiSQLNeedInstall;
[Code]
///////////// SiemensPath ///////////////////////////////
@@ -178,6 +179,7 @@ var
CheckBoxIni: TCheckBox;
CustomInputOptionCMSorSCM: TInputOptionWizardPage;
IsSCM: Boolean;
OverwriteConfig: Boolean;
function GetStyleOption: Boolean;
begin
@@ -207,14 +209,9 @@ var
Result := sSiemensPath ;
end;
///////////////// FrameworkIsNotInstalled ////////////////////////////////////
function FrameworkIsNotInstalled: Boolean;
begin;
Result := not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
end;
///////////////// Check .NET Framework 4.6.2 ////////////////////////////////////
function NetFrameworkIsMissing(): Boolean;
function NetFrameworkNeedInstall(): Boolean;
var
bSuccess: Boolean;
regVersion: Cardinal;
@@ -227,6 +224,17 @@ var
end;
end;
///////////// Check heidiSQL /////////////////
function CheckHeidiSQLNeedInstall: Boolean;
begin
if FileExists(ExpandConstant('C:\Program Files (x86)\Common Files\MariaDBShared\HeidiSQL\heidisql.exe'))
then Result:= false
else
begin
Result:= True
end;
end;
///////////////// CreateCustomInputOptionCMsorSCM //////////////////////////
procedure CreateCustomInputOptionCMSorSCM;
begin
@@ -238,10 +246,39 @@ var
CustomInputOptionCMSorSCM.Values[0] := True;
end;
/////////////////// CheckConfigExistence /////////////////////////////
function OverwriteConfigModal: Boolean;
begin
if DirExists(ExpandConstant('C:\CMS\Active\Active\Config')) then begin
// Ask the user a Yes/No question, defaulting to No
if not (MsgBox('La cartella "Config" esiste già. Vuoi sovrascriverla?', mbConfirmation, MB_YESNO) = IDYES) then
begin
// user clicked NO
Result:= false;
Exit;
end;
end;
Result:= True;
end;
function GetOverwriteConfig: Boolean;
begin
Result:= OverwriteConfig;
end;
/////////////////// DeleteLocalStorage //////////////////////
procedure DeleteLocalStorage;
begin
DelTree(ExpandConstant('{app}\Client\LocalStorage'), True, True, True);
end;
///////////// InitializeWizard //////////////////////////
procedure InitializeWizard();
begin
CreateCustomInputOptionCMSorSCM;
OverwriteConfig := OverwriteConfigModal;
end;
procedure CurStepChanged(CurStep: TSetupStep);
@@ -250,4 +287,9 @@ var
then IsSCM := false
else
IsSCM := true
if CurStep = ssPostInstall then
begin
DeleteLocalStorage;
end;
end;
+1 -1
View File
@@ -51,7 +51,7 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
Binary file not shown.
+55 -24
View File
@@ -3,10 +3,12 @@ using Step.Config;
using Step.Core;
using Step.Database;
using Step.Listeners;
using Step.Model;
using Step.NC;
using Step.UI;
using Step.Utils;
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
@@ -29,24 +31,26 @@ namespace Step
LogInfo("Application started");
//Check if is already running an instance of this application
String AppName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location);
string AppName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location);
if (System.Diagnostics.Process.GetProcessesByName(AppName).Length > 1)
{
MessageBox.Show("Only one istance of "+ AppName +" can be executed!", AppName, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
// Create unhandled exception handler
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandler);
// Create directories if they don't exist
CreateDirectories();
// Read config
ServerConfigController.ReadStartupConfig();
// Start WinForm
ServerControlWindow.Start();
DatabaseContext.SetUpDbConnectionAndDbConfig();
ServerControlWindow.Start();
bool databaseStatus = DatabaseContext.SetUpDbConnectionAndDbConfig();
// Register listener to "close application" messages
MessageServices.Current.Subscribe(SEND_STOP_SERVER, (a, b) =>
@@ -54,17 +58,19 @@ namespace Step
StopRequest.Set();
if (NcConfig.NcVendor.ToUpper() == NC_VENDOR.SIEMENS)
ThreadSiemensHmi.StopThread();
});
if(NcConfig.NcVendor.ToUpper() != NC_VENDOR.SIEMENS)
});
// Stop threads and disconnect from NC
MessageServices.Current.Subscribe(SEND_STOP_THREADS, (a, b) =>
{
// Setup Osai/fanuc toolManager
using (NcToolTableHandler handler = new NcToolTableHandler())
{
handler.Connect();
handler.SetupNcToolManager();
}
}
using (NcHandler ncHandler = new NcHandler())
ncHandler.Disconnect();
// Stop Threads
ThreadsHandler.Close();
// Stop messageservice listeners
ListenersHandler.Stop();
});
// Start server services
if (!ValidateAddress(ServerStartupConfig.ServerAddress))
@@ -78,13 +84,15 @@ namespace Step
opt.Urls.Add("http://" + ServerStartupConfig.ServerAddress.ToString() + ":" + ServerStartupConfig.ServerPort.ToString());
using (WebApp.Start<App_Start.Startup>(opt))
{
// Start Threads
ThreadsHandler.Start();
// Start listeners
ListenersHandler.Start();
{
if (databaseStatus)
{
// Start Threads
ThreadsHandler.Start();
// Start listeners
ListenersHandler.Start();
}
// Wait interrupt from client
StopRequest.WaitOne();
@@ -99,7 +107,7 @@ namespace Step
// Stop messageservice listeners
ListenersHandler.Stop();
// Close WinForm
ServerControlWindow.Stop();
ServerControlWindow.Stop();
}
private static bool ValidateAddress(string Addr)
@@ -129,6 +137,29 @@ namespace Step
}
LogException((Exception)args.ExceptionObject, ERROR_LEVEL.FATAL);
}
private static void CreateDirectories()
{
if (!Directory.Exists(MAINTENANCE_ATTACHMENT_PATH))
Directory.CreateDirectory(MAINTENANCE_ATTACHMENT_PATH);
if (!Directory.Exists(ALARM_ATTACHMENT_PATH))
Directory.CreateDirectory(ALARM_ATTACHMENT_PATH);
if (!Directory.Exists(TEMP_PP_FOLDER))
Directory.CreateDirectory(TEMP_PP_FOLDER);
if (!Directory.Exists(PART_PRG_IMAGES))
Directory.CreateDirectory(PART_PRG_IMAGES);
if (!Directory.Exists(JOB_TMP_DIRECTORY))
Directory.CreateDirectory(JOB_TMP_DIRECTORY);
if (!Directory.Exists(QUEUE_TMP_FOLDER))
Directory.CreateDirectory(QUEUE_TMP_FOLDER);
if (!Directory.Exists(SCADA_DIRECTORY))
Directory.CreateDirectory(SCADA_DIRECTORY);
}
}
}
+14 -14
View File
@@ -444,6 +444,7 @@
margin-left: 132px;
&.my {
margin-top: 5px;
margin-left: 15px;
}
@@ -934,30 +935,30 @@
th:nth-child(2),
td:nth-child(2) {
width: 550px;
max-width: 550px;
width: 500px;
max-width: 500px;
text-align: left;
}
th:nth-child(3),
td:nth-child(3) {
width: 150px;
max-width: 150px;
width: 130px;
max-width: 130px;
text-align: left;
}
th:nth-child(4),
td:nth-child(4) {
width: 100px;
max-width: 100px;
min-width: 50px;
width: 150px;
max-width: 150px;
min-width: 100px;
text-align: left;
}
th:nth-child(5),
td:nth-child(5) {
width: 100px;
max-width: 100px;
width: 150px;
min-width: 150px;
}
th,
@@ -972,11 +973,10 @@
tbody {
display: block;
height: 552px;
width: 1200px;
overflow-y: scroll;
height: 559px;
width: 1241px;
overflow-y: hidden;
overflow-x: hidden;
padding-right: 20px;
&.without-footer {
height: 620px
@@ -1003,7 +1003,7 @@
tr {
cursor: pointer;
height: 64px;
height: 62px;
padding: 10px;
td {
+18 -1
View File
@@ -241,8 +241,25 @@ button.soft {
}
}
&.square {
width: 48px;
width: 60px;
}
&.incremental {
padding: 0px 2px;
margin-right: 0px;
margin-left: 0px;
}
&.firstIncr {
margin-left: 4px;
border-radius: 2px 0px 0px 2px !important
}
&.middleIncr {
border-radius: 0px !important
}
&.lastIncr {
border-radius: 0px 2px 2px 0px !important
}
i.fa {
font-size: 24px;
}
+41 -12
View File
@@ -760,21 +760,23 @@
}
.card-axes-production {
height: 558px;
height: 562px;
width: 232px;
border-radius: 2px;
box-shadow: 0 1px 2px 0 @color-black-40;
//border-radius: 2px;
//box-shadow: 0 1px 2px 0 @color-black-40;
background-color: @color-background-white;
display: flex;
flex-flow: column;
.first-box-axes,
.second-box-axes {
height: 264px;
.first-box-axes {
height: 294px;
width: 100%;
display: flex;
flex-flow: column;
overflow: auto;
border-radius: 2px;
box-shadow: 0 1px 2px 0 @color-black-40;
margin-top: 8px;
.axes {
min-height: 32px;
@@ -874,12 +876,7 @@
.axes:last-child {
margin-bottom: 16px;
}
}
.second-box-axes {
width: 100%;
height: 294px;
.tabs {
min-height: 30px;
width: 100%;
@@ -918,6 +915,38 @@
}
}
.override-box {
height: 260px;
width: 232px;
display: block;
margin: auto;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
.label-container{
display: flex;
justify-content: space-around;
font-weight: 600;
text-align: center;
.title {
font-size: 14px;
}
.value {
font-size: 25px;
}
.rapid {
color: #002680
}
.work {
color: #1791ff
}
}
}
.card-folder-path {
width: auto;
height: 64px;
@@ -313,6 +313,7 @@
height: 14px;
margin-left: 132px;
&.my{
margin-top: 5px;
margin-left: 15px;
}
.text-date{
+3 -2
View File
@@ -41,7 +41,7 @@
@background-color: rgb(216, 216, 216);
@handle-width: 48px;
@handle-height: 32px;
@persona-size: 88px;
@persona-size: 80px;
@spinner-loading-height: 200px;
@spinner-loading-width: 200px;
a, a:visited, a:hover, a:active {
@@ -51,8 +51,9 @@ a, a:visited, a:hover, a:active {
.persona {
height: @persona-size;
width: @persona-size;
line-height: @persona-size;
border-radius: @persona-size;
font-size: @persona-size;
font-size: 50px;
text-align: center;
background-color: @color-darkish-blue;
color: white;
@@ -299,6 +299,7 @@
height: 14px;
margin-left: 132px;
&.my{
margin-top: 5px;
margin-left: 15px;
}
.text-date{
@@ -33,6 +33,7 @@
@modal-iframe-height: 800px;
@modal-iframe-width: 1800px;
@modal-user-info-height: 610px;
@modal-concact-info-height: 375px;
@modal-login-top: @modal-login-height / 2;
@modal-login-left: @modal-login-width / 2;
@modal-create-maintenance-width: 896px;
@@ -183,6 +184,7 @@
align-items: center;
span{
word-wrap: break-word;
max-width: 445px;
}
input{
margin-left: auto;
@@ -343,6 +345,52 @@
}
}
.@{modal}.contact-info {
width: @modal-login-width;
height: @modal-concact-info-height;
top: calc(~"50%" - @modal-concact-info-height / 2);
left: calc(~"50%" - @modal-login-width / 2);
header {
background-color: @color-darkish-blue;
color: @color-white;
font-family: @font-family;
font-weight: 600;
font-size: 24px;
text-align: left;
padding: 0px 23px;
}
img {
display: block;
width: 88px;
height: 88px;
margin: auto;
margin-top: 48px;
margin-bottom: 40px;
}
.details {
text-align: center;
color: @color-greyish-brown;
& > * {
display: block;
margin-bottom: 5px;
height: 20px;
line-height: 20px;
}
& > label {
text-align: right;
strong {
display: inline-block;
width: 50%;
text-align: left;
}
}
& > hr {
border: none;
}
}
}
.@{modal}.self-adaptive {
width: @modal-selfadaptivepath-width;
height: @modal-selfadaptivepath-height;
@@ -131,7 +131,7 @@
height: 353px;
width: 232px;
border-radius: 2px;
margin-top: 8px;
margin-top: 12px;
margin-bottom: 16px;
box-shadow: 0 1px 2px 0 @color-black-40;
button:nth-child(odd),button:nth-child(even){
@@ -178,11 +178,28 @@
float: right;
border-radius: 2px;
box-shadow: 0 1px 2px 0 @color-black-40;
position: relative;
&.has-scada{
height: 360px !important;
}
.SelectionInProgress{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 2em;
font-weight: 600;
background-color: rgba(217, 217, 217, 0.5);
flex-flow: column;
line-height: 2.5em;
}
.box-softkeys-prefered-header{
display: flex;
height: 62px;
+65 -1
View File
@@ -43,9 +43,41 @@
input[type=number]{
border: solid 1px #ccc;
}
input[type=number]:disabled{
border: solid 1px #FFFFFF;
}
.input-group{
display: flex;
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
/* display: none; <- Crashes Chrome on hover */
-webkit-appearance: none;
margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}
}
.input-group-append{
display: flex;
margin-left: 0px;
align-items: center;
justify-content: center;
}
.appended-btn {
position: relative;
z-index: 2;
background-image: linear-gradient(to bottom, @button-success-color-from, @button-success-color-to);
color: white;
border: #001e48 1px solid;
&:active {
background-image: linear-gradient(to bottom, @button-success-color-to, @button-success-color-from) !important;
box-shadow: inset @button-shadow;
border: #001e48 1px solid !important;
color: #8eb5e2
}
}
}
}
@@ -136,7 +168,8 @@
input[type=number]{
border: solid 1px #ccc;
border: solid 1px #ccc;
padding: 0px;
}
input[type=number]:disabled{
border: solid 1px #FFFFFF;
@@ -169,6 +202,37 @@
& >* {
position: absolute;
}
.input-group{
display: flex;
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
/* display: none; <- Crashes Chrome on hover */
-webkit-appearance: none;
margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}
}
.input-group-append{
display: flex;
margin-left: 0px;
align-items: center;
justify-content: center;
}
.appended-btn {
position: relative;
z-index: 2;
background-image: linear-gradient(to bottom, @button-success-color-from, @button-success-color-to);
color: white;
border: #001e48 1px solid;
&:active {
background-image: linear-gradient(to bottom, @button-success-color-to, @button-success-color-from) !important;
box-shadow: inset @button-shadow;
border: #001e48 1px solid !important;
color: #8eb5e2
}
}
}
}
}
+215 -74
View File
@@ -127,6 +127,7 @@
}
.modal.m155 .content-real-showval span {
word-wrap: break-word;
max-width: 445px;
}
.modal.m155 .content-real-showval input {
margin-left: auto;
@@ -279,6 +280,50 @@
.modal.machine-info .details > hr {
border: none;
}
.modal.contact-info {
width: 600px;
height: 375px;
top: calc(50% - 187.5px);
left: calc(50% - 300px);
}
.modal.contact-info header {
background-color: #002680;
color: #fff;
font-family: 'Work Sans', sans-serif;
font-weight: 600;
font-size: 24px;
text-align: left;
padding: 0px 23px;
}
.modal.contact-info img {
display: block;
width: 88px;
height: 88px;
margin: auto;
margin-top: 48px;
margin-bottom: 40px;
}
.modal.contact-info .details {
text-align: center;
color: #4b4b4b;
}
.modal.contact-info .details > * {
display: block;
margin-bottom: 5px;
height: 20px;
line-height: 20px;
}
.modal.contact-info .details > label {
text-align: right;
}
.modal.contact-info .details > label strong {
display: inline-block;
width: 50%;
text-align: left;
}
.modal.contact-info .details > hr {
border: none;
}
.modal.self-adaptive {
width: 750px;
height: 350px;
@@ -3439,7 +3484,22 @@ button.soft[disabled]:not(.readonly) img {
filter: grayscale(100%) invert(44%);
}
button.soft.square {
width: 48px;
width: 60px;
}
button.soft.incremental {
padding: 0px 2px;
margin-right: 0px;
margin-left: 0px;
}
button.soft.firstIncr {
margin-left: 4px;
border-radius: 2px 0px 0px 2px !important;
}
button.soft.middleIncr {
border-radius: 0px !important;
}
button.soft.lastIncr {
border-radius: 0px 2px 2px 0px !important;
}
button.soft i.fa {
font-size: 24px;
@@ -4680,6 +4740,7 @@ footer .container button.big:before {
margin-left: 132px;
}
.accordion section .dropdown .all-message-box .message-box .message-box-body.my {
margin-top: 5px;
margin-left: 15px;
}
.accordion section .dropdown .all-message-box .message-box .message-box-body .text-date {
@@ -5108,27 +5169,27 @@ footer .container button.big:before {
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table th:nth-child(2),
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table td:nth-child(2) {
width: 550px;
max-width: 550px;
width: 500px;
max-width: 500px;
text-align: left;
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table th:nth-child(3),
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table td:nth-child(3) {
width: 150px;
max-width: 150px;
width: 130px;
max-width: 130px;
text-align: left;
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table th:nth-child(4),
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table td:nth-child(4) {
width: 100px;
max-width: 100px;
min-width: 50px;
width: 150px;
max-width: 150px;
min-width: 100px;
text-align: left;
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table th:nth-child(5),
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table td:nth-child(5) {
width: 100px;
max-width: 100px;
width: 150px;
min-width: 150px;
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table th,
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table td {
@@ -5141,11 +5202,10 @@ footer .container button.big:before {
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table tbody {
display: block;
height: 552px;
width: 1200px;
overflow-y: scroll;
height: 559px;
width: 1241px;
overflow-y: hidden;
overflow-x: hidden;
padding-right: 20px;
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table tbody.without-footer {
height: 620px;
@@ -5167,7 +5227,7 @@ footer .container button.big:before {
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table tbody tr {
cursor: pointer;
height: 64px;
height: 62px;
padding: 10px;
}
.alarm-history-container .alarm-history-body .alarm-history-body-left .alarm-history-table tbody tr td {
@@ -7631,24 +7691,23 @@ footer .container button.big:before {
color: #002680;
}
.card-axes-production {
height: 558px;
height: 562px;
width: 232px;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
background-color: #fff;
display: flex;
flex-flow: column;
}
.card-axes-production .first-box-axes,
.card-axes-production .second-box-axes {
height: 264px;
.card-axes-production .first-box-axes {
height: 294px;
width: 100%;
display: flex;
flex-flow: column;
overflow: auto;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
margin-top: 8px;
}
.card-axes-production .first-box-axes .axes,
.card-axes-production .second-box-axes .axes {
.card-axes-production .first-box-axes .axes {
min-height: 32px;
width: 100%;
display: flex;
@@ -7657,20 +7716,16 @@ footer .container button.big:before {
justify-content: space-between;
margin-top: 8px;
}
.card-axes-production .first-box-axes .axes._7,
.card-axes-production .second-box-axes .axes._7 {
.card-axes-production .first-box-axes .axes._7 {
min-height: 26px;
}
.card-axes-production .first-box-axes .axes._8,
.card-axes-production .second-box-axes .axes._8 {
.card-axes-production .first-box-axes .axes._8 {
min-height: 22px;
}
.card-axes-production .first-box-axes .axes._9,
.card-axes-production .second-box-axes .axes._9 {
.card-axes-production .first-box-axes .axes._9 {
min-height: 18px;
}
.card-axes-production .first-box-axes .axes .variable,
.card-axes-production .second-box-axes .axes .variable {
.card-axes-production .first-box-axes .axes .variable {
font-size: 48px;
width: 75px;
line-height: 0;
@@ -7678,24 +7733,19 @@ footer .container button.big:before {
color: #4b4b4b;
text-align: right;
}
.card-axes-production .first-box-axes .axes .variable._7,
.card-axes-production .second-box-axes .axes .variable._7 {
.card-axes-production .first-box-axes .axes .variable._7 {
font-size: 42px;
}
.card-axes-production .first-box-axes .axes .variable._8,
.card-axes-production .second-box-axes .axes .variable._8 {
.card-axes-production .first-box-axes .axes .variable._8 {
font-size: 36px;
}
.card-axes-production .first-box-axes .axes .variable._9,
.card-axes-production .second-box-axes .axes .variable._9 {
.card-axes-production .first-box-axes .axes .variable._9 {
font-size: 29px;
}
.card-axes-production .first-box-axes .axes .variable.more9,
.card-axes-production .second-box-axes .axes .variable.more9 {
.card-axes-production .first-box-axes .axes .variable.more9 {
width: 69px;
}
.card-axes-production .first-box-axes .axes .number,
.card-axes-production .second-box-axes .axes .number {
.card-axes-production .first-box-axes .axes .number {
width: 135px;
height: 32px;
border-radius: 2px;
@@ -7707,79 +7757,92 @@ footer .container button.big:before {
padding-right: 8px;
font-size: 20px;
}
.card-axes-production .first-box-axes .axes .number._7,
.card-axes-production .second-box-axes .axes .number._7 {
.card-axes-production .first-box-axes .axes .number._7 {
height: 26px;
}
.card-axes-production .first-box-axes .axes .number._8,
.card-axes-production .second-box-axes .axes .number._8 {
.card-axes-production .first-box-axes .axes .number._8 {
height: 22px;
}
.card-axes-production .first-box-axes .axes .number._9,
.card-axes-production .second-box-axes .axes .number._9 {
.card-axes-production .first-box-axes .axes .number._9 {
height: 18px;
font-size: 18px;
}
.card-axes-production .first-box-axes .axes .number.more9,
.card-axes-production .second-box-axes .axes .number.more9 {
.card-axes-production .first-box-axes .axes .number.more9 {
margin-right: 5px;
}
.card-axes-production .first-box-axes .axes .umeasure,
.card-axes-production .second-box-axes .axes .umeasure {
.card-axes-production .first-box-axes .axes .umeasure {
width: 32px;
margin-left: 5px;
text-align: left;
}
.card-axes-production .first-box-axes .axes:nth-child(odd) .number,
.card-axes-production .second-box-axes .axes:nth-child(odd) .number {
.card-axes-production .first-box-axes .axes:nth-child(odd) .number {
background-color: #f3f3f3;
}
.card-axes-production .first-box-axes .axes:nth-child(even) .number,
.card-axes-production .second-box-axes .axes:nth-child(even) .number {
.card-axes-production .first-box-axes .axes:nth-child(even) .number {
background-color: rgba(23, 145, 255, 0.3);
}
.card-axes-production .first-box-axes .axes:first-child,
.card-axes-production .second-box-axes .axes:first-child {
.card-axes-production .first-box-axes .axes:first-child {
margin-top: 16px;
}
.card-axes-production .first-box-axes .axes:last-child,
.card-axes-production .second-box-axes .axes:last-child {
.card-axes-production .first-box-axes .axes:last-child {
margin-bottom: 16px;
}
.card-axes-production .second-box-axes {
width: 100%;
height: 294px;
}
.card-axes-production .second-box-axes .tabs {
.card-axes-production .first-box-axes .tabs {
min-height: 30px;
width: 100%;
background-color: #e7e7e7;
display: flex;
flex-direction: row;
}
.card-axes-production .second-box-axes .tabs button {
.card-axes-production .first-box-axes .tabs button {
visibility: hidden;
border: none;
}
.card-axes-production .second-box-axes .tabs .tab {
.card-axes-production .first-box-axes .tabs .tab {
visibility: visible;
width: 77px;
border-right: solid 1px #979797;
}
.card-axes-production .second-box-axes .tabs .tab.active {
.card-axes-production .first-box-axes .tabs .tab.active {
background-color: #fff;
border-top: solid 2px #1791ff !important;
}
.card-axes-production .second-box-axes .tabs .tab:last-child {
.card-axes-production .first-box-axes .tabs .tab:last-child {
border: none;
}
.card-axes-production .second-box-axes .content-box {
.card-axes-production .first-box-axes .content-box {
height: calc(100% - 30px);
width: 100%;
display: flex;
flex-flow: column;
overflow: auto;
}
.override-box {
height: 260px;
width: 232px;
display: block;
margin: auto;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
}
.override-box .label-container {
display: flex;
justify-content: space-around;
font-weight: 600;
text-align: center;
}
.override-box .label-container .title {
font-size: 14px;
}
.override-box .label-container .value {
font-size: 25px;
}
.override-box .label-container .rapid {
color: #002680;
}
.override-box .label-container .work {
color: #1791ff;
}
.card-folder-path {
width: auto;
height: 64px;
@@ -17390,6 +17453,7 @@ footer .container button.big:before {
margin-left: 132px;
}
.accordion-maintenance section .dropdown .all-message-box .message-box .message-box-body.my {
margin-top: 5px;
margin-left: 15px;
}
.accordion-maintenance section .dropdown .all-message-box .message-box .message-box-body .text-date {
@@ -18419,7 +18483,7 @@ footer .container button.big:before {
height: 353px;
width: 232px;
border-radius: 2px;
margin-top: 8px;
margin-top: 12px;
margin-bottom: 16px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
}
@@ -18465,10 +18529,26 @@ footer .container button.big:before {
float: right;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
position: relative;
}
.production-container .production-box .box-softkeys-prefered.has-scada {
height: 360px !important;
}
.production-container .production-box .box-softkeys-prefered .SelectionInProgress {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 2em;
font-weight: 600;
background-color: rgba(217, 217, 217, 0.5);
flex-flow: column;
line-height: 2.5em;
}
.production-container .production-box .box-softkeys-prefered .box-softkeys-prefered-header {
display: flex;
height: 62px;
@@ -19203,6 +19283,7 @@ footer .container button.big:before {
margin-left: 132px;
}
.job-editor-container .job-editor-box .job-editor-body .job-editor-body-box .job-editor-body-box-right .box-right-body .box-right-body-container .all-message-box .message-box .message-box-body.my {
margin-top: 5px;
margin-left: 15px;
}
.job-editor-container .job-editor-box .job-editor-body .job-editor-body-box .job-editor-body-box-right .box-right-body .box-right-body-container .all-message-box .message-box .message-box-body .text-date {
@@ -19591,6 +19672,35 @@ footer .container button.big:before {
.card-scada-production .card-scada-prod-body input[type=number]:disabled {
border: solid 1px #FFFFFF;
}
.card-scada-production .card-scada-prod-body .input-group {
display: flex;
}
.card-scada-production .card-scada-prod-body .input-group input::-webkit-outer-spin-button,
.card-scada-production .card-scada-prod-body .input-group input::-webkit-inner-spin-button {
/* display: none; <- Crashes Chrome on hover */
-webkit-appearance: none;
margin: 0;
/* <-- Apparently some margin are still there even though it's hidden */
}
.card-scada-production .card-scada-prod-body .input-group-append {
display: flex;
margin-left: 0px;
align-items: center;
justify-content: center;
}
.card-scada-production .card-scada-prod-body .appended-btn {
position: relative;
z-index: 2;
background-image: linear-gradient(to bottom, #1756ad, #002680);
color: white;
border: #001e48 1px solid;
}
.card-scada-production .card-scada-prod-body .appended-btn:active {
background-image: linear-gradient(to bottom, #002680, #1756ad) !important;
box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.4);
border: #001e48 1px solid !important;
color: #8eb5e2;
}
.scada-container {
height: 100%;
width: 100%;
@@ -19675,6 +19785,7 @@ footer .container button.big:before {
}
.scada-container .scada-box .scada-box-body input[type=number] {
border: solid 1px #ccc;
padding: 0px;
}
.scada-container .scada-box .scada-box-body input[type=number]:disabled {
border: solid 1px #FFFFFF;
@@ -19704,6 +19815,35 @@ footer .container button.big:before {
.scada-container .scada-box .scada-box-body > * {
position: absolute;
}
.scada-container .scada-box .scada-box-body .input-group {
display: flex;
}
.scada-container .scada-box .scada-box-body .input-group input::-webkit-outer-spin-button,
.scada-container .scada-box .scada-box-body .input-group input::-webkit-inner-spin-button {
/* display: none; <- Crashes Chrome on hover */
-webkit-appearance: none;
margin: 0;
/* <-- Apparently some margin are still there even though it's hidden */
}
.scada-container .scada-box .scada-box-body .input-group-append {
display: flex;
margin-left: 0px;
align-items: center;
justify-content: center;
}
.scada-container .scada-box .scada-box-body .appended-btn {
position: relative;
z-index: 2;
background-image: linear-gradient(to bottom, #1756ad, #002680);
color: white;
border: #001e48 1px solid;
}
.scada-container .scada-box .scada-box-body .appended-btn:active {
background-image: linear-gradient(to bottom, #002680, #1756ad) !important;
box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.4);
border: #001e48 1px solid !important;
color: #8eb5e2;
}
.event-transparent {
pointer-events: none;
}
@@ -20480,10 +20620,11 @@ a:active {
text-decoration: none;
}
.persona {
height: 88px;
width: 88px;
border-radius: 88px;
font-size: 88px;
height: 80px;
width: 80px;
line-height: 80px;
border-radius: 80px;
font-size: 50px;
text-align: center;
background-color: #002680;
color: white;
+5 -1
View File
@@ -133,7 +133,10 @@ declare module server {
length: number,
radius: number,
wearLength: number,
wearRadius: number
wearRadius: number,
unitOfMeasure: string,
realRadius: number,
realLength: number
}
export interface ShankNc{
@@ -209,6 +212,7 @@ declare module server {
childId: number,
familyName: string,
type: number
id: number
}
export interface MagazinesPositions {
+29 -18
View File
@@ -1,11 +1,11 @@
import Vue from "vue";
import { Hub } from "./services/hub";
import { Header, Footer } from "./app.modules";
import { Header, Footer, LocalizationService } from "./app.modules";
import { Login } from "src/app_modules/machine";
import { alarmList } from "src/app_modules/alarms";
import { LoginService } from "src/services/loginService";
import { loginService } from "src/services/loginService";
import { DataService } from "src/services/dataService";
import { Factory, MessageService } from "./_base";
import { Factory, messageService } from "./_base";
import { ModalContainer, ModalNcContainer } from "./modules/base-components";
import { ModalHelper } from "src/components/modals"
import { appModelActions } from "src/store";
@@ -15,9 +15,13 @@ import * as iziToast from "izitoast";
import moment from "moment";
import Component from "vue-class-component";
import { Watch } from "vue-property-decorator";
import { UsersService } from "./services/usersService";
declare var cmsClient;
@Component({
name: "app",
components: {
@@ -48,7 +52,7 @@ export default class app extends Vue {
moment.locale((window.navigator as any).userLanguage || window.navigator.language);
}
mounted() {
let ms = Factory.Get(MessageService);
let ms = messageService;
// if cms is connected
if (typeof cmsClient != "undefined")
@@ -58,6 +62,14 @@ export default class app extends Vue {
this.applyBlur = true;
});
ms.subscribeToChannel("show-modal-login", args => {
this.applyBlur = true;
});
ms.subscribeToChannel("hide-modal-login", args => {
this.applyBlur = false;
});
ms.subscribeToChannel("hide-modal", args => {
this.applyBlur = false;
});
@@ -101,18 +113,17 @@ export default class app extends Vue {
});
let $this = this;
Factory.Get(LoginService)
.getUserInfo()
loginService.getUserInfo()
.then(() => {
if (!$this.isAuthenticated)
$this.$nextTick(() => ModalHelper.ShowModal(Login));
$this.$nextTick(() => ModalHelper.ShowModalLogin(Login));
});
this.$store.watch(
s => s.currentUser,
(n, o) => {
if (!n) {
this.$nextTick(() => ModalHelper.ShowModal(Login));
this.$nextTick(() => ModalHelper.ShowModalLogin(Login));
} else
new DataService().SetCurrentNcLanguage(
this.$store.state.currentUser.language
@@ -125,7 +136,7 @@ export default class app extends Vue {
window.addEventListener("keyup", function (event) {
// If down arrow was pressed...
if (event.keyCode == 27) {
Factory.Get(MessageService).publishToChannel("esc_pressed");
messageService.publishToChannel("esc_pressed");
}
});
}
@@ -146,24 +157,24 @@ export default class app extends Vue {
this.applyViewPosition(-window.innerHeight + 84);
//Hide the HMI if is showed (in production)
Factory.Get(MessageService).publishToChannel("HMI-production-hide");
Factory.Get(MessageService).publishToChannel("PROD-production-hide");
messageService.publishToChannel("HMI-production-hide");
messageService.publishToChannel("PROD-production-hide");
//Show the HMI with delay (For the animation)
Factory.Get(MessageService).publishToChannel("HMI-show", 500);
messageService.publishToChannel("HMI-show", 500);
} else {
//Setup the Position of the View
this.applyViewPosition(0);
//Hide the HMI
Factory.Get(MessageService).publishToChannel("HMI-hide");
messageService.publishToChannel("HMI-hide");
//Launche the show in delay if we are in production
if (this.showHMIinProduction && this.$route.path.includes("production"))
Factory.Get(MessageService).publishToChannel(
messageService.publishToChannel(
"HMI-production-show",
700
);
if (this.showPRODinProduction && this.$route.path.includes("production"))
Factory.Get(MessageService).publishToChannel(
messageService.publishToChannel(
"PROD-production-show",
700
);
@@ -199,10 +210,10 @@ export default class app extends Vue {
this.hub.Hello();
}
onstartdrag() {
Factory.Get(MessageService).publishToChannel("HMI-start-drag");
messageService.publishToChannel("HMI-start-drag");
}
onstopdrag() {
Factory.Get(MessageService).publishToChannel("HMI-stop-drag", 600);
messageService.publishToChannel("HMI-stop-drag", 600);
}
toggleMainView(direction) {
if (!direction || direction == "down" || direction == "none")
@@ -212,7 +223,7 @@ export default class app extends Vue {
}
}
sendMessage(name) {
Factory.Get(MessageService).publishToChannel(name);
messageService.publishToChannel(name);
}
movepanel(e) {
if (e && e.touches && e.touches[0]) {
+1
View File
@@ -21,6 +21,7 @@
</div>
<modal-nc-container name="modal-nc" :class="{'blur':applyBlur}"></modal-nc-container>
<modal-container containerName="modal-login" name="modal-login" ></modal-container>
<modal-container name="modal" ></modal-container>
<div class="window-buttons">
<button class="gray square close" @click="sendMessage('hide')" :title="'header_tooltip_btn_minimize' | localize('Minimize the application')">-</button>
@@ -1,7 +1,6 @@
import Axios, { AxiosInstance, AxiosPromise, AxiosResponse, AxiosBasicCredentials, AxiosRequestConfig } from "axios";
import Factory from "./factoryService";
import * as iziToast from "izitoast";
import { MessageService } from "./messageService";
// import { localizeString } from "../filters/localizeFilter";
import { store, AppModel } from "src/store";
+5 -5
View File
@@ -1,19 +1,19 @@
import Factory from "./factoryService";
import { MessageService } from "./messageService";
import { messageService } from "./messageService";
import { UUID,Utilities } from "./utils";
export function awaiter(promise) {
Factory.Get(MessageService).publishToChannel("show-loading");
messageService.publishToChannel("show-loading");
return promise.then(data => {
Factory.Get(MessageService).publishToChannel("hide-loading");
messageService.publishToChannel("hide-loading");
return data
})
.catch(err => {
Factory.Get(MessageService).publishToChannel("hide-loading");
messageService.publishToChannel("hide-loading");
return Promise.reject(err);
});
}
export { Factory, MessageService, UUID, Utilities };
export { Factory, UUID, Utilities, messageService };
+2 -3
View File
@@ -4,7 +4,7 @@ import Vue from "vue";
// Message Service Definition
// --------------------------------------------------
export class MessageService {
class MessageService {
private _events: Vue = new Vue({});
@@ -28,5 +28,4 @@ export class MessageService {
}
}
Factory.Register(MessageService);
export const messageService = new MessageService();
+33 -30
View File
@@ -1,11 +1,11 @@
import { MessageService, Factory } from "./_base";
import { Factory, messageService } from "./_base";
import { machineService } from "src/services/machineService";
import { LoginService } from "src/services/loginService";
import { loginService } from "src/services/loginService";
import { store, AppModel, MachineStatusModel, machineStatusActions, localizationModelActions, machineInfoActions } from "src/store";
import { UserInfoDialog, MachineInfoDialog, AxesCalibration, Login } from "src/app_modules/machine";
import { UserInfoDialog, MachineInfoDialog, AxesCalibration, ContactInfoDialog, Login } from "src/app_modules/machine";
import { AreaModel } from "src/store/machineStatus.store";
@@ -13,12 +13,16 @@ import { DataService } from "./services/dataService";
import { ToolingService } from "./services/toolingService";
import { DepotService } from "./services/depotService";
import { MaintenanceService } from "./services/maintenanceService";
import { localizationService } from "./services/localizationService";
import { localizationService, LocalizationService } from "./services/localizationService";
import { DEBUG_CONFIGURATION, USE_RUNTIME_CONFIGURATION } from "./config";
import { ModalHelper } from "./components/modals";
import Vue from "vue";
import { scadaService } from "./services/scadaService";
import { Hub } from "./services";
import { UsersService } from "./services/usersService";
Factory.Register(UsersService);
Factory.Register(LocalizationService);
declare let cmsClient: any;
let HMIvisible = false;
@@ -39,10 +43,10 @@ let HMIScreenshotInterval;
let HMIprodTimeout;
let RerenderInterval;
const messageService = Factory.Get(MessageService);
messageService.subscribeToChannel("show-user-info", () => { ModalHelper.ShowModal(UserInfoDialog); });
messageService.subscribeToChannel("show-machine-info", () => { ModalHelper.ShowModal(MachineInfoDialog); });
messageService.subscribeToChannel("show-contact-info", () => { ModalHelper.ShowModal(ContactInfoDialog); });
messageService.subscribeToChannel("show-axes-calibration", () => { ModalHelper.ShowNcModal(AxesCalibration); });
messageService.subscribeToChannel("hide-axes-calibration", () => { ModalHelper.HideNcModal(AxesCalibration); });
messageService.subscribeToChannel("show-m155-questions", () => { ModalHelper.ShowNextM155Modal(); });
@@ -58,12 +62,12 @@ messageService.subscribeToChannel("show-nochange-page", () => {
//Loading machine configuration
async function loadMachineConfig() {
await Factory.Get(LoginService).getUserInfo();
try{
await scadaService.ListScada();
}catch(err){
await loginService.getUserInfo();
// try{
// await scadaService.ListScada();
// }catch(err){
}
// }
try {
@@ -85,9 +89,9 @@ async function loadMachineConfig() {
// set vendor type
switch (vendor) {
case "siemens": machineInfoActions.updateMachineInfo(store, { isSiemens: true, isFanuc: false, isOsai: false, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM }); break;
case "fanuc": machineInfoActions.updateMachineInfo(store, { isSiemens: false, isFanuc: true, isOsai: false, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM }); break;
case "osai": machineInfoActions.updateMachineInfo(store, { isSiemens: false, isFanuc: false, isOsai: true, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM }); break;
case "siemens": machineInfoActions.updateMachineInfo(store, { isSiemens: true, isFanuc: false, isOsai: false, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM, mgiOption : false }); break;
case "fanuc": machineInfoActions.updateMachineInfo(store, { isSiemens: false, isFanuc: true, isOsai: false, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM, mgiOption: mcresult.mgiOption }); break;
case "osai": machineInfoActions.updateMachineInfo(store, { isSiemens: false, isFanuc: false, isOsai: true, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM, mgiOption: false }); break;
default: machineInfoActions.updateMachineInfo(store, { isSiemens: false, isFanuc: false, isOsai: false, defaultLanguage: mcresult.defaultLanguage, isSCMVisualStyle: isSCM }); break;
}
@@ -127,7 +131,6 @@ if (typeof cmsClient != "undefined") {
Vue.filter('localize')("modal_confirm_close_application", "Sei sicuro di voler chiudere l'applicazione?"),
() => {
messageService.publishToChannel("close-scada");
Hub.Current.QuitServerApp();
cmsClient.closeForm();
},null ,'modal');
}
@@ -155,7 +158,7 @@ if (typeof cmsClient != "undefined") {
cmsClient.setNcWindowState(0);
//Events handler
Factory.Get(MessageService).subscribeToChannel("HMI-show", args => {
messageService.subscribeToChannel("HMI-show", args => {
clearTimeout(HMIshowTimeout);
if (args[0] > 0)
HMIshowTimeout = setTimeout(ShowHmi, args[0]);
@@ -163,7 +166,7 @@ if (typeof cmsClient != "undefined") {
ShowHmi()
});
Factory.Get(MessageService).subscribeToChannel("HMI-hide", args => {
messageService.subscribeToChannel("HMI-hide", args => {
clearTimeout(HMIshowTimeout);
if (args[0] > 0)
HMIshowTimeout = setTimeout(HideHmi, args[0]);
@@ -171,7 +174,7 @@ if (typeof cmsClient != "undefined") {
HideHmi()
});
Factory.Get(MessageService).subscribeToChannel("HMI-production-show", args => {
messageService.subscribeToChannel("HMI-production-show", args => {
clearTimeout(HMIprodTimeout);
if (args[0] > 0)
HMIprodTimeout = setTimeout(ShowHmiProduction, args[0]);
@@ -179,7 +182,7 @@ if (typeof cmsClient != "undefined") {
ShowHmiProduction()
});
Factory.Get(MessageService).subscribeToChannel("HMI-production-hide", args => {
messageService.subscribeToChannel("HMI-production-hide", args => {
clearTimeout(HMIprodTimeout);
if (args[0] > 0)
HMIprodTimeout = setTimeout(HideHmiProduction, args[0]);
@@ -189,7 +192,7 @@ if (typeof cmsClient != "undefined") {
});
Factory.Get(MessageService).subscribeToChannel("PROD-production-show", args => {
messageService.subscribeToChannel("PROD-production-show", args => {
clearTimeout(PRODprodTimeout);
if (args[0] > 0)
PRODprodTimeout = setTimeout(ShowProdProduction, args[0]);
@@ -197,7 +200,7 @@ if (typeof cmsClient != "undefined") {
ShowProdProduction()
});
Factory.Get(MessageService).subscribeToChannel("PROD-production-hide", args => {
messageService.subscribeToChannel("PROD-production-hide", args => {
clearTimeout(PRODprodTimeout);
if (args[0] > 0)
PRODprodTimeout = setTimeout(HideProdProduction, args[0]);
@@ -206,7 +209,7 @@ if (typeof cmsClient != "undefined") {
});
Factory.Get(MessageService).subscribeToChannel("HMI-show-alarms", args => {
messageService.subscribeToChannel("HMI-show-alarms", args => {
clearTimeout(HMIAlarmsTimeout);
if (args[0] > 0)
HMIAlarmsTimeout = setTimeout(showAlarms, args[0]);
@@ -214,7 +217,7 @@ if (typeof cmsClient != "undefined") {
showAlarms()
});
Factory.Get(MessageService).subscribeToChannel("HMI-hide-alarms", args => {
messageService.subscribeToChannel("HMI-hide-alarms", args => {
clearTimeout(HMIAlarmsTimeout);
if (args[0] > 0)
HMIAlarmsTimeout = setTimeout(hideAlarms, args[0]);
@@ -222,7 +225,7 @@ if (typeof cmsClient != "undefined") {
hideAlarms()
});
Factory.Get(MessageService).subscribeToChannel("HMI-show-modal", args => {
messageService.subscribeToChannel("HMI-show-modal", args => {
clearTimeout(HMIModalsTimeout);
if (args[0] > 0)
HMIModalsTimeout = setTimeout(showModal, args[0]);
@@ -230,7 +233,7 @@ if (typeof cmsClient != "undefined") {
showModal()
});
Factory.Get(MessageService).subscribeToChannel("HMI-show-modal-nc", args => {
messageService.subscribeToChannel("HMI-show-modal-nc", args => {
clearTimeout(HMIModalsNcTimeout);
if (args[0] > 0)
HMIModalsNcTimeout = setTimeout(showNcModal, args[0]);
@@ -238,7 +241,7 @@ if (typeof cmsClient != "undefined") {
showNcModal()
});
Factory.Get(MessageService).subscribeToChannel("HMI-hide-modal-nc", args => {
messageService.subscribeToChannel("HMI-hide-modal-nc", args => {
clearTimeout(HMIModalsNcTimeout);
if (args[0] > 0)
HMIModalsNcTimeout = setTimeout(hideNcModal, args[0]);
@@ -246,7 +249,7 @@ if (typeof cmsClient != "undefined") {
hideNcModal()
});
Factory.Get(MessageService).subscribeToChannel("HMI-hide-modal", args => {
messageService.subscribeToChannel("HMI-hide-modal", args => {
clearTimeout(HMIModalsTimeout);
if (args[0] > 0)
HMIModalsTimeout = setTimeout(hideModal, args[0]);
@@ -254,7 +257,7 @@ if (typeof cmsClient != "undefined") {
hideModal()
});
Factory.Get(MessageService).subscribeToChannel("HMI-start-drag", args => {
messageService.subscribeToChannel("HMI-start-drag", args => {
clearTimeout(HMIDraggingTimeout);
if (args[0] > 0)
HMIDraggingTimeout = setTimeout(startDrag, args[0]);
@@ -262,7 +265,7 @@ if (typeof cmsClient != "undefined") {
startDrag()
});
Factory.Get(MessageService).subscribeToChannel("HMI-stop-drag", args => {
messageService.subscribeToChannel("HMI-stop-drag", args => {
clearTimeout(HMIDraggingTimeout);
if (args[0] > 0)
HMIDraggingTimeout = setTimeout(stopDrag, args[0]);
@@ -365,10 +368,10 @@ function ElaborateHMIStatus() {
// Enable/Disable Scrollers
Factory.Get(MessageService).subscribeToChannel("disable-scroll", (args) => {
messageService.subscribeToChannel("disable-scroll", (args) => {
disableScroll(args[0]);
});
Factory.Get(MessageService).subscribeToChannel("enable-scroll", (args) => {
messageService.subscribeToChannel("enable-scroll", (args) => {
enableScroll(args[0]);
});
// Scroll manipulation
+2 -2
View File
@@ -1,5 +1,5 @@
// GLobal services
import { LoginService } from "./services/loginService";
import { loginService } from "./services/loginService";
import { LocalizationService } from "./services/localizationService";
// Page and modules
@@ -39,7 +39,7 @@ import ModalReportSelectColumn from './modules/base-components/modal-report-sele
export {
LoginService,
loginService,
LocalizationService,
Header,
Footer,
@@ -97,7 +97,7 @@ export default class AlarmDetail extends Vue {
let idx = $this.attaches.indexOf(attach);
$this.attaches.splice(idx, 1);
});
}, null);
}, null, "modal");
}
}
@@ -11,7 +11,7 @@ import { AlarmModel } from "@/src/store";
import { loginService } from "src/services";
import { alarmsService } from "src/services/alarmsService";
import { awaiter } from "src/_base";
import { awaiter, messageService } from "src/_base";
import { getColorFromName, isDarkColor } from "src/_base/utils";
import DatePicker from "vue2-datepicker";
@@ -73,6 +73,7 @@ export default class AlarmHistory extends Vue {
currentPage: number = 0;
itemsPerPage: number = 9;
totalPages: number = 1;
canDelete: boolean = false;
get currentUser() {
@@ -107,10 +108,11 @@ export default class AlarmHistory extends Vue {
arrayUserFilter.push(user.id);
})
let result = await awaiter(alarmsService.getAlarms(this.filter.title, arraySourceFilter, arrayUserFilter, from, to, this.currentPage, this.itemsPerPage));
let result = await awaiter(alarmsService.getAlarms(this.filter.title, arraySourceFilter, arrayUserFilter, from, to, this.currentPage, this.itemsPerPage,
this.$store.state.currentUser.language));
this.data = result.alarms;
this.totalPages = result.pages;
this.canDelete = result.canDelete;
}
async mounted() {
@@ -125,14 +127,17 @@ export default class AlarmHistory extends Vue {
this.filter.multiUser.push(this.users[index].username);
}
this.onloading = false;
messageService.subscribeToChannel("login-reload",
() => {
this.filterChanged("","")
});
}
async onChange(e) {
this.newAttach = e.target.files[0];
let result = await awaiter(alarmsService.postAttachment(this.selectedAlarm.alarmId, this.selectedAlarm.source, this.newAttach));
this.attaches.push(result.data);
// new MaintenanceService().uploadFile(this.selectedMaintenance, this.state.file);
}
user(id: number) {
@@ -145,6 +150,15 @@ export default class AlarmHistory extends Vue {
this.notes = await awaiter(alarmsService.getNote(this.selectedAlarm.alarmId, this.selectedAlarm.source));
}
async deleteAlarms(){
ModalHelper.AskConfirm(this.$options.filters.localize("modal_confirm_title", "Richiesta di conferma"),
this.$options.filters.localize("modal_confirm_delete_alarms", "Confermi la cancellazione di tutti gli allarmi salvati?"),
async () => {
await awaiter(alarmsService.DeleteAlarms())
this.filterChanged("","")
}, null);
}
async exportAlarms(){
let $this = this;
let from = this.filter.interval && this.filter.interval.length ? this.filter.interval[0] : null;
@@ -157,20 +171,12 @@ export default class AlarmHistory extends Vue {
arraySourceFilter.push(item.id);
});
/*this.filter.multiUser.forEach(function (item) {
$this.users.forEach(function (items) {
if (items.username == item) {
arrayUserFilter.push(items.id);
}
})
})*/
this.filter.multiUser.forEach(function (item) {
var user = $this.users.find(x => x.username == item)
arrayUserFilter.push(user.id);
})
await awaiter(alarmsService.exportAlarms(this.filter.title, arraySourceFilter, arrayUserFilter, from, to));
await awaiter(alarmsService.exportAlarms(this.filter.title, arraySourceFilter, arrayUserFilter, from, to, this.$store.state.currentUser.language));
}
updateLimitation() {
@@ -85,6 +85,9 @@
<button class="btn" @click="exportAlarms">
<i class="fa fa-download"></i>
</button>
<button v-if="canDelete" class="btn" @click="deleteAlarms">
<i class="fa fa-trash"></i>
</button>
</div>
</div>
<div class="alarm-history-table">
@@ -0,0 +1,31 @@
import Vue from "vue";
import { Modal, ModalHelper } from "src/components/modals";
import { machineService, ContactConfigurationModel } from "src/services/machineService";
import { Factory, messageService, awaiter } from "src/_base";
import Component from "vue-class-component";
@Component({ components: { modal: Modal } })
export default class ContactInfoDialog extends Vue {
public contactInfo: ContactConfigurationModel = {
name:"",
phoneNumber: "",
email: ""
};
async beforeMount() {
this.contactInfo = await awaiter(new machineService().getContactConfiguration());
messageService.subscribeToChannel("esc_pressed", args => {
this.close();
});
}
beforeDestroy() {
messageService.deleteChannel("esc_pressed");
}
close() {
messageService.deleteChannel("esc_pressed");
ModalHelper.HideModal();
}
}
@@ -0,0 +1,18 @@
<template>
<modal type="contact-info" :title="'contactinfo_lbl_title' | localize('Informazioni di contatto')">
<button class="close" slot="header-buttons" @click="close()"><i class="fa fa-remove"></i></button>
<div>
<i class="fa fa-phone persona block"></i>
<div class="details">
<label>{{'contact_name' | localize('Nome contatto:')}} <strong>{{contactInfo.name}}</strong></label>
<label>{{'contact_email' | localize('Email:')}} <strong>{{contactInfo.email}}</strong></label>
<label>{{'contact_phoneNumber' | localize('Telefono:')}} <strong>{{contactInfo.phoneNumber}}</strong></label>
</div>
</div>
</modal>
</template>
<script src="./contact-info-dialog.ts" lang="ts">
</script>
@@ -2,13 +2,16 @@ import Vue from "vue";
import Component from "vue-class-component";
import { Modal, ModalHelper } from "src/components/modals"
import { Factory, MessageService, awaiter } from "src/_base";
import { LoginService } from "src/app.modules";
import { Factory, messageService, awaiter } from "src/_base";
import { loginService } from "src/app.modules";
import { DataService } from 'src/services/dataService';
import iziToast, { IziToastSettings } from "izitoast";
import { store, machineStatusActions } from "src/store";
@Component({ name: "login", components: { modal: Modal } })
export default class Login extends Vue {
$route: any;
$router: any;
public user: server.loginViewModel = { password: null, username: null };
public hasError: boolean = false;
@@ -16,22 +19,33 @@ export default class Login extends Vue {
public logginIn: boolean = false;
async doLogin() {
var service = Factory.Get(LoginService);
var service = loginService;
var userNotAuthorized = false;
this.logginIn = true;
if (await awaiter(service.doLogin(this.user)).then(() => {
Factory.Get(MessageService).publishToChannel("update-maintenance");
Factory.Get(MessageService).publishToChannel("update-softkeys-favorite");
ModalHelper.HideModal();
await awaiter(service.doLogin(this.user)).then(() => {
// messageService.publishToChannel("update-maintenance");
messageService.publishToChannel("update-softkeys-favorite");
messageService.publishToChannel("login-reload");
// Check if user can access to current view, else redirect to production
if(!this.checkIfUserIsAuthorized()){
userNotAuthorized = true;
}
}).catch(() => {
this.logginIn = false;
this.hasError = !service.isAuthenticated;
}))
ModalHelper.HideModal();
})
if(this.logginIn) {
if(userNotAuthorized)
this.$router.push('/production')
ModalHelper.HideModal("modal-login");
}
}
mounted(){
Factory.Get(MessageService).subscribeToChannel("force-ui-update", args => {
messageService.subscribeToChannel("force-ui-update", args => {
this.$forceUpdate();
});
document.body.addEventListener('keydown', function(e) {
@@ -40,7 +54,22 @@ export default class Login extends Vue {
}
return true;
})
}
checkIfUserIsAuthorized(): boolean {
return machineStatusActions.isAreaVisible(store, this.URLS_TO_FUNCTIONS_BINDING[this.$route.path]);
}
URLS_TO_FUNCTIONS_BINDING = {
"/production": "production",
"/tooling": "tooling",
"/report": "report",
"/alarms": "alarms",
"/maintenance": "maintenance",
"/scada": "scada",
"/users": "users",
"/jobeditor": "job-editor",
"/utilities": "utilities"
}
}
@@ -3,7 +3,7 @@ import { Modal, ModalHelper } from "src/components/modals";
import Component from "vue-class-component";
import Vue from "vue";
import { Hub } from "src/services";
import { Factory, MessageService } from "src/_base";
import { Factory, messageService } from "src/_base";
import { Watch } from "vue-property-decorator";
@Component({ components: { modal: Modal } })
@@ -19,7 +19,7 @@ export default class M155Dialog extends Vue{
mounted(){
this.data = ModalHelper.M155ModalData.data;
this.value = 0;
Factory.Get(MessageService).subscribeToChannel("show-modal-nc", args => {
messageService.subscribeToChannel("show-modal-nc", args => {
this.data = ModalHelper.M155ModalData.data;
});
}
@@ -1,7 +1,7 @@
import Vue from "vue";
import { Modal, ModalHelper } from "src/components/modals";
import { machineService } from "src/services/machineService";
import { Factory, MessageService } from "src/_base";
import { Factory, messageService } from "src/_base";
import moment from "moment";
import Component from "vue-class-component";
@@ -12,16 +12,16 @@ export default class MachineInfoDialog extends Vue {
beforeMount() {
new machineService().getMachineCNInfo();
Factory.Get(MessageService).subscribeToChannel("esc_pressed", args => {
messageService.subscribeToChannel("esc_pressed", args => {
this.close();
});
}
beforeDestroy() {
Factory.Get(MessageService).deleteChannel("esc_pressed");
messageService.deleteChannel("esc_pressed");
}
close() {
Factory.Get(MessageService).deleteChannel("esc_pressed");
messageService.deleteChannel("esc_pressed");
ModalHelper.HideModal();
}
@@ -5,8 +5,8 @@ import { Watch } from "vue-property-decorator";
import { Modal, ModalHelper } from "src/components/modals"
import { AppModel, localizationModelActions } from "src/store";
import { Factory, MessageService, awaiter } from "src/_base";
import { LoginService } from "src/app.modules";
import { Factory, messageService, awaiter } from "src/_base";
import { loginService } from "src/app.modules";
import { getColorFromName,isDarkColor } from "src/_base/utils";
import { LocalizationService, localizationService } from "src/services/localizationService";
import { DataService } from "src/services/dataService";
@@ -26,7 +26,7 @@ export default class UserInfo extends Vue {
doLogout() {
ModalHelper.HideModal();
Factory.Get(LoginService).Logout();
loginService.Logout();
}
getColor(nome,cognome){
@@ -44,13 +44,13 @@ export default class UserInfo extends Vue {
this.currentLanguage = (this.$store.state as AppModel).localization.currentLanguage;
this.reloadLanguages();
Factory.Get(MessageService).subscribeToChannel("esc_pressed", args => {
messageService.subscribeToChannel("esc_pressed", args => {
this.close();
});
}
beforeDestroy() {
Factory.Get(MessageService).deleteChannel("esc_pressed");
messageService.deleteChannel("esc_pressed");
}
async reloadLanguages() {
@@ -1,6 +1,6 @@
import Vue from "vue";
import Component from "vue-class-component";
import { Factory, MessageService } from "src/_base";
import { Factory, messageService } from "src/_base";
import moment from "moment";
import { AppModel } from "src/store";
import { getColorFromName,isDarkColor } from "src/_base/utils";
@@ -58,6 +58,6 @@ export default class UserInfo extends Vue {
}
public sendMessage(name:string) {
Factory.Get(MessageService).publishToChannel(name);
messageService.publishToChannel(name);
}
}
@@ -5,6 +5,10 @@
<i class="fa fa-question"></i>
</button>
-->
<button class="dark-blue"
@click="sendMessage('show-contact-info')" :title="'header_tooltip_btn_mchinfo' | localize('Show Machine Info')">
<i class="fa fa-phone"></i>
</button>
<button class="dark-blue"
@click="sendMessage('show-machine-info')" :title="'header_tooltip_btn_mchinfo' | localize('Show Machine Info')">
<img src="assets/icons/png/machine-info.png" width="28px">

Some files were not shown because too many files have changed in this diff Show More