IBN Stand

This commit is contained in:
2018-08-07 15:47:25 +02:00
parent 69739c782d
commit 965a5c5a1f
307 changed files with 9034 additions and 6766 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Project Description="Lackierzelle" Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
<Communication />
<ANSIC DefaultIncludes="true" />

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
<ConfigurationManager ActiveConfigurationName="Config0" />
<Deployment Value="ActiveCpu" />

View File

@@ -0,0 +1,32 @@
(*//Interface ABB Roboter*)
TYPE
gtyp_MP7150 : STRUCT
Left1 : BOOL; (*Links 1 (von oben) [1]*)
Left2 : BOOL; (*Links 2 (von oben) [2]*)
Left3 : BOOL; (*Links 3 (von oben) [3]*)
Left4 : BOOL; (*Links 4 (von oben) [4]*)
Right1 : BOOL; (*Rechts 1 (von oben) [5]*)
Right2 : BOOL; (*Rechts 2 (von oben) [6]*)
Right3 : BOOL; (*Rechts 3 (von oben) [7]*)
Right4 : BOOL; (*Rechts 4 (von oben) [8]*)
ESC : BOOL; (*Escape Unten 1 (von links) [9]*)
Second : BOOL; (*2te Ebene Unten 2 (von links) [10]*)
VInc : BOOL; (*V+ Unten 3 (von links) [11]*)
VDec : BOOL; (*V- Unten 4 (von links) [12]*)
Vars : BOOL; (*X= VariablenMonitor Unten 5 (von links) [13]*)
Positions : BOOL; (*Positionsmaske Unten 6 (von links) [14]*)
Projekt : BOOL; (*Projektmaske Unten 7 (von links) [15]*)
Service : BOOL; (*Serviceseite Unten 8 (von links) [0]*)
Mask1 : BOOL; (*Applikationsmaske1 Unten 9 (von links) [16]*)
Start : BOOL; (*Start Unten 10 (von links) [17]*)
Stop : BOOL; (*Stop Unten 11 (von links) [18]*)
Alarms : BOOL; (*Alarmmaske Unten 12 (von links) [19]*)
Settings : BOOL; (*Einstellungen Unten 13 (von links) [20]*)
Ctrl : BOOL; (*Steuertaste links Oben [21]*)
KeyRight : BOOL; (*Schl<68>sselschalter Rechts [120]*)
KeyLeft : BOOL; (*Schl<68>sselschalter Rechts [122]*)
END_STRUCT;
END_TYPE
(**)

View File

@@ -0,0 +1,3 @@
VAR
gMP7150 : gtyp_MP7150; (*Tasten / LEDs MP 7150*)
END_VAR

View File

@@ -0,0 +1,70 @@
PROGRAM _CYCLIC
IF Status.bConnect THEN
Status.uiRfbExtConnect := RfbExtConnect (ADR (RFBLib), ADR (Parameter.strVisuName));
IF (Status.uiRfbExtConnect = 0) THEN
Status.bConnect := FALSE;
END_IF
END_IF
Status.uiRfbDataAge := RfbExtDataAge (RFBLib, ADR (Status.udDataAge));
IF (Status.udDataAge < Parameter.udTimeout) THEN
//Daten g<EFBFBD>ltig ansonsten keine Verbindung zum VNC Server
Status.uiRfbKeyState := RfbExtKeyState(RFBLib, 1, ADR (usKeystate));
Status.uiRfbTemp := RfbExtTemperatureValue (RFBLib, 1, ADR (diTemperature));
CASE Parameter.enPanelType OF
enMP7150:
RfbExtKeyState(RFBLib, 0, ADR (Status.usKeyState));
gMP7150.Service := USINT_TO_BOOL (Status.usKeyState);
Status.uiRfbKeyState := RfbExtKeyState(RFBLib, 1, ADR (Status.usKeyState));
gMP7150.Left1 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 2, ADR (Status.usKeyState));
gMP7150.Left2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 3, ADR (Status.usKeyState));
gMP7150.Left2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 4, ADR (Status.usKeyState));
gMP7150.Left2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 5, ADR (Status.usKeyState));
gMP7150.Right1 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 6, ADR (Status.usKeyState));
gMP7150.Right2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 7, ADR (Status.usKeyState));
gMP7150.Right3 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 8, ADR (Status.usKeyState));
gMP7150.Right4 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 9, ADR (Status.usKeyState));
gMP7150.ESC := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 10, ADR (Status.usKeyState));
gMP7150.Second := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 11, ADR (Status.usKeyState));
gMP7150.VInc := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 12, ADR (Status.usKeyState));
gMP7150.VDec := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 13, ADR (Status.usKeyState));
gMP7150.Vars := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 14, ADR (Status.usKeyState));
gMP7150.Positions := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 15, ADR (Status.usKeyState));
gMP7150.Projekt := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 16, ADR (Status.usKeyState));
gMP7150.Mask1 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 17, ADR (Status.usKeyState));
gMP7150.Start := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 18, ADR (Status.usKeyState));
gMP7150.Stop := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 19, ADR (Status.usKeyState));
gMP7150.Alarms := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 20, ADR (Status.usKeyState));
gMP7150.Settings := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 21, ADR (Status.usKeyState));
gMP7150.Ctrl := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 120, ADR (Status.usKeyState));
gMP7150.KeyRight := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 121, ADR (Status.usKeyState));
gMP7150.KeyLeft := USINT_TO_BOOL (Status.usKeyState);
END_CASE
END_IF
END_PROGRAM

View File

@@ -0,0 +1,6 @@
PROGRAM _EXIT
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Cyclic code">Cyclic.st</File>
<File Description="Init code">Init.st</File>
<File Description="Exit code">Exit.st</File>
<File Description="Local data types" Private="true">Types.typ</File>
<File Description="Local variables" Private="true">Variables.var</File>
</Files>
</Program>

View File

@@ -0,0 +1,10 @@
PROGRAM _INIT
Parameter.udTimeout := 250; //Max Alter von Daten
Parameter.strVisuName := 'Visu';
Parameter.enPanelType := enMP7150;
Status.bConnect := TRUE; //Verbindungsaufbau erzwingen
RfbExtInit (ADR (RFBLib), Parameter.udTimeout);
END_PROGRAM

View File

@@ -0,0 +1,22 @@
TYPE
typ_Parameter : STRUCT
udTimeout : UDINT;
strVisuName : STRING[80];
enPanelType : typ_enPanels;
END_STRUCT;
typ_Status : STRUCT
bConnect : BOOL;
usKeyState : USINT;
uiRfbTemp : UINT;
uiRfbExtConnect : UINT;
uiRfbKeyState : UINT;
uiRfbDataAge : UINT;
udDataAge : UDINT;
END_STRUCT;
typ_enPanels :
(
enMP7140,
enMP7150
);
END_TYPE

View File

@@ -0,0 +1,8 @@
(*//Strukturen*)
VAR
usKeystate : USINT;
diTemperature : DINT;
RFBLib : AsRfbExt_typ; (*RFBLib*)
Parameter : typ_Parameter;
Status : typ_Status;
END_VAR

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Communication Types" Private="true">GlobalMP.typ</Object>
<Object Type="File" Description="Logging Vars" Private="true">GlobalMP.var</Object>
<Object Type="Program" Language="IEC" Description="Verbindung zu MobilePanel">MPComm</Object>
<Object Type="Library" Language="Binary" Description="The AsRfbExt library provides access to extended MP40/50 functions.">asrfbext</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,158 @@
(********************************************************************
* COPYRIGHT (C) BERNECKER + RAINER, AUSTRIA, A-5142 EGGELSBERG
********************************************************************
* Library: ASRFBEXT
* File: ASRFBEXT.fun
* Created: 10.04.2008
********************************************************************
* Functions and function blocks of library ASRFBEXT
********************************************************************)
FUNCTION RfbExtInit : UINT (*init the library*)
VAR_INPUT
pLib : UDINT; (*instance of the library*)
uiTimeOut : UDINT; (*maximum age in ms of the data from the client for which a valid value can be read.*)
END_VAR
END_FUNCTION
FUNCTION RfbExtConnect : UINT (*connect to client*)
VAR_INPUT
pLib : UDINT; (*instance of the library*)
pName : UDINT; (*pointer to STRING containing the name of the visualization*)
END_VAR
END_FUNCTION
FUNCTION RfbExtSetClientCaption : UINT (*set client caption*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pClientCaption : UDINT; (*pointer to STRING containing the new title*)
END_VAR
END_FUNCTION
FUNCTION RfbExtSetPassword : UINT (*set vnc password*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
mode : USINT; (*defines which password to set. 0 = view only, 1 = view and control*)
pPassword : UDINT; (*pointer to STRING which contains the new password*)
END_VAR
END_FUNCTION
FUNCTION RfbExtKeyState : UINT (*get the state of a key*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the key*)
pValue : UDINT; (*pointer to USINT variable containing the value of the key*)
END_VAR
END_FUNCTION
FUNCTION RfbExtReconnect : UINT (*terminate current connection and let client connect to new ip address*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pTargetIp : UDINT; (*pointer to STRING containing the ip-address of the target*)
END_VAR
END_FUNCTION
FUNCTION RfbExtStartProcess : UINT (*start a process on the client side*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pcmdLine : UDINT; (*pointer to STRING containing the name of the command line*)
END_VAR
END_FUNCTION
FUNCTION RfbExtProcessState : UINT (*get the state of a process running on the client side*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
piProcessState : UDINT; (*pointer to DINT variable containing the state of process*)
END_VAR
END_FUNCTION
FUNCTION RfbExtNrClientsConnected : UINT (*get the number of clients connected*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtServerTimeout : UINT (*set the server timeout*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
timeout : UDINT; (*timeout in ms*)
END_VAR
END_FUNCTION
FUNCTION RfbExtDisableClientLogin : UINT (*disable all clients from login*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtDisconnectAllClients : UINT (*disconnect all clients*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtEnableClientLogin : UINT (*enable client login*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtSetMaxClients : UINT (*set the max number of clients allowed*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
maxClients : USINT; (*maximum number of clients to be allowed (max = 10)*)
END_VAR
END_FUNCTION
FUNCTION RfbExtDataAge : UINT (*get the age of the client data*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pAge : UDINT; (*age of last refresh of client window*)
END_VAR
END_FUNCTION
FUNCTION RfbExtJoystickValue : UINT (*get joystick value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the joystick (0 = first joystick)*)
pValueX : UDINT; (*pointer to DINT variable containing the x value*)
pValueY : UDINT; (*pointer to DINT variable containing the y value*)
pValueZ : UDINT; (*pointer to DINT variable containing the z value*)
END_VAR
END_FUNCTION
FUNCTION RfbExtResetHandwheelValue : UINT (*reset handwheel value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the handwheel (0 = first handwheel)*)
value : DINT; (*new value for the handwheel*)
END_VAR
END_FUNCTION
FUNCTION RfbExtHandwheelValue : UINT (*get the handwheel value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the handwheel (0 = first handwheel)*)
pValue : UDINT; (*pointer to UDINT variable containing the value of the handwheel*)
END_VAR
END_FUNCTION
FUNCTION RfbExtPotiValue : UINT (*get the value of the potentiometer*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the potentiometer (0 = first potentiometer)*)
pValue : UDINT; (*pointer to UDINT variable containing the value of the potentiometer*)
END_VAR
END_FUNCTION
FUNCTION RfbExtTemperatureValue : UINT (*get the temperature value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the temperature (0 = first temperature)*)
pValue : UDINT; (*pointer to DINT variable containing the temperature value*)
END_VAR
END_FUNCTION

View File

@@ -0,0 +1,26 @@
(********************************************************************
* COPYRIGHT (C) BERNECKER + RAINER, AUSTRIA, A-5142 EGGELSBERG
********************************************************************
* Library: AsRfbExt
* File: AsRfbExt.typ
* Created: 10.04.2008
********************************************************************
* Global data types of library AsRfbExt
********************************************************************)
TYPE
AsRfbExtType : STRUCT
pClient : UDINT;
pHeader : UDINT;
uiTimeOut : UDINT;
uiTimeOutValue : UDINT;
status : UINT;
END_STRUCT;
AsRfbExt_typ : STRUCT
pClient : UDINT;
pHeader : UDINT;
uiTimeOut : UDINT;
uiTimeOutValue : UDINT;
status : UINT;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Version="4.33.0" Description="The AsRfbExt library provides access to extended MP40/50 functions." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsRfbExt.fun</File>
<File>AsRfbExt.typ</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,5 @@
Just for internal use. Do not modify or delete this file!!
This file indicates that the default library structure for Ar dependent libraries will be irgnored and the libary is treated as versioned library.
Therefore if a library folder contains this file but no library versions the library isn't valid anymore.

View File

@@ -0,0 +1,6 @@
Just for internal use. Do not modify or delete this file!!
This file indicates that the default library structure for versioned libraries will be ignored and the libary is treated as Ar or Vc dependent library.
Only counts for AS 3.00.80.xx or higher versions.
Therefore if a library folder contains this file but no library declaration files the library isn't valid anymore.

View File

@@ -0,0 +1,66 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASRFBEXT_
#define _ASRFBEXT_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Datatypes and datatypes of function blocks */
typedef struct AsRfbExtType
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExtType;
typedef struct AsRfbExt_typ
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExt_typ;
/* Prototyping of functions and function blocks */
unsigned short RfbExtInit(unsigned long pLib, unsigned long uiTimeOut);
unsigned short RfbExtConnect(unsigned long pLib, unsigned long pName);
unsigned short RfbExtSetClientCaption(struct AsRfbExt_typ* pLib, unsigned long pClientCaption);
unsigned short RfbExtSetPassword(struct AsRfbExt_typ* pLib, unsigned char mode, unsigned long pPassword);
unsigned short RfbExtKeyState(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtReconnect(struct AsRfbExt_typ* pLib, unsigned long pTargetIp);
unsigned short RfbExtStartProcess(struct AsRfbExt_typ* pLib, unsigned long pcmdLine);
unsigned short RfbExtProcessState(struct AsRfbExt_typ* pLib, unsigned long piProcessState);
unsigned short RfbExtNrClientsConnected(struct AsRfbExt_typ* pLib);
unsigned short RfbExtServerTimeout(struct AsRfbExt_typ* pLib, unsigned long timeout);
unsigned short RfbExtDisableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtDisconnectAllClients(struct AsRfbExt_typ* pLib);
unsigned short RfbExtEnableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtSetMaxClients(struct AsRfbExt_typ* pLib, unsigned char maxClients);
unsigned short RfbExtDataAge(struct AsRfbExt_typ* pLib, unsigned long pAge);
unsigned short RfbExtJoystickValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValueX, unsigned long pValueY, unsigned long pValueZ);
unsigned short RfbExtResetHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, signed long value);
unsigned short RfbExtHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtPotiValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
__asm__(".section \".plc\"");
__asm__(".previous");
#ifdef __cplusplus
};
#endif
#endif /* _ASRFBEXT_ */

View File

@@ -0,0 +1,62 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASRFBEXT_
#define _ASRFBEXT_
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
/* Datatypes and datatypes of function blocks */
typedef struct AsRfbExtType
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExtType;
typedef struct AsRfbExt_typ
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExt_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC unsigned short RfbExtInit(unsigned long pLib, unsigned long uiTimeOut);
_BUR_PUBLIC unsigned short RfbExtConnect(unsigned long pLib, unsigned long pName);
_BUR_PUBLIC unsigned short RfbExtSetClientCaption(struct AsRfbExt_typ* pLib, unsigned long pClientCaption);
_BUR_PUBLIC unsigned short RfbExtSetPassword(struct AsRfbExt_typ* pLib, unsigned char mode, unsigned long pPassword);
_BUR_PUBLIC unsigned short RfbExtKeyState(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
_BUR_PUBLIC unsigned short RfbExtReconnect(struct AsRfbExt_typ* pLib, unsigned long pTargetIp);
_BUR_PUBLIC unsigned short RfbExtStartProcess(struct AsRfbExt_typ* pLib, unsigned long pcmdLine);
_BUR_PUBLIC unsigned short RfbExtProcessState(struct AsRfbExt_typ* pLib, unsigned long piProcessState);
_BUR_PUBLIC unsigned short RfbExtNrClientsConnected(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtServerTimeout(struct AsRfbExt_typ* pLib, unsigned long timeout);
_BUR_PUBLIC unsigned short RfbExtDisableClientLogin(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtDisconnectAllClients(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtEnableClientLogin(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtSetMaxClients(struct AsRfbExt_typ* pLib, unsigned char maxClients);
_BUR_PUBLIC unsigned short RfbExtDataAge(struct AsRfbExt_typ* pLib, unsigned long pAge);
_BUR_PUBLIC unsigned short RfbExtJoystickValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValueX, unsigned long pValueY, unsigned long pValueZ);
_BUR_PUBLIC unsigned short RfbExtResetHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, signed long value);
_BUR_PUBLIC unsigned short RfbExtHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
_BUR_PUBLIC unsigned short RfbExtPotiValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
_BUR_PUBLIC unsigned short RfbExtTemperatureValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
#ifdef __cplusplus
};
#endif
#endif /* _ASRFBEXT_ */

View File

@@ -0,0 +1,66 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASRFBEXT_
#define _ASRFBEXT_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Datatypes and datatypes of function blocks */
typedef struct AsRfbExtType
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExtType;
typedef struct AsRfbExt_typ
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExt_typ;
/* Prototyping of functions and function blocks */
unsigned short RfbExtInit(unsigned long pLib, unsigned long uiTimeOut);
unsigned short RfbExtConnect(unsigned long pLib, unsigned long pName);
unsigned short RfbExtSetClientCaption(struct AsRfbExt_typ* pLib, unsigned long pClientCaption);
unsigned short RfbExtSetPassword(struct AsRfbExt_typ* pLib, unsigned char mode, unsigned long pPassword);
unsigned short RfbExtKeyState(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtReconnect(struct AsRfbExt_typ* pLib, unsigned long pTargetIp);
unsigned short RfbExtStartProcess(struct AsRfbExt_typ* pLib, unsigned long pcmdLine);
unsigned short RfbExtProcessState(struct AsRfbExt_typ* pLib, unsigned long piProcessState);
unsigned short RfbExtNrClientsConnected(struct AsRfbExt_typ* pLib);
unsigned short RfbExtServerTimeout(struct AsRfbExt_typ* pLib, unsigned long timeout);
unsigned short RfbExtDisableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtDisconnectAllClients(struct AsRfbExt_typ* pLib);
unsigned short RfbExtEnableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtSetMaxClients(struct AsRfbExt_typ* pLib, unsigned char maxClients);
unsigned short RfbExtDataAge(struct AsRfbExt_typ* pLib, unsigned long pAge);
unsigned short RfbExtJoystickValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValueX, unsigned long pValueY, unsigned long pValueZ);
unsigned short RfbExtResetHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, signed long value);
unsigned short RfbExtHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtPotiValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
__asm__(".section \".plc\"");
__asm__(".previous");
#ifdef __cplusplus
};
#endif
#endif /* _ASRFBEXT_ */

View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.5.113 SP?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Communication Types">GlobalCom.typ</Object>
<Object Type="File" Description="Logging Vars">GlobalCom.var</Object>
<Object Type="Program" Language="IEC" Description="Kommunikation zu ABB Roboter (IRC 5 Version)">ABBCom</Object>
<Object Type="Program" Language="IEC" Description="13 Mhz Transponder B&amp;R + Scanner HR 100">RFID_USB</Object>
<Object Type="Package" Description="Mobile Panel">MP</Object>
</Objects>
</Package>

View File

@@ -1,21 +1,107 @@
PROGRAM _CYCLIC
pFileInterface.strDevice := 'CNC_PrgDir';
pFileInterface.strFile := 'CncProg2.cnc';
strDevice := 'CNC_PrgDir';
strPath := '';
//Parameter
VCCtrl.ListboxEdit.usMinIndex := 0;
VCCtrl.ListboxEdit.usMaxIndex := Parameter.usEditLines;
lstrEditline ACCESS ADR (strLines[VCCtrl.ListboxEdit.usIndexDatapoint]);
FUBs.TON_ReadDir.IN := NOT bReadDir;
FUBs.TON_ReadDir.PT := t#90s;
FUBs.TON_ReadDir ();
IF FUBs.TON_ReadDir.Q THEN
bReadDir := TRUE;
END_IF
CASE enDirStep OF
//auf Befehl warten
//=================================
enDirStep_WAIT:
IF bReadDir THEN
enDirStep := enDirStep_DIRINFO;
bReadDir := FALSE;
END_IF
//Verzeichnisinfo lesen
//=================================
enDirStep_DIRINFO:
FUBs.DirInfo.pDevice := ADR (strDevice);
FUBs.DirInfo.pPath := ADR (strPath);
FUBs.DirInfo.enable := TRUE;
IF (FUBs.DirInfo.status = ERR_OK) THEN
FUBs.DirInfo.enable := FALSE;
States.udFilesInDir := FUBs.DirInfo.filenum;
IF (States.udFilesInDir > 0) THEN
States.udFilesInDir := States.udFilesInDir - 1;
END_IF
VCCtrl.DropDownBoxFile.usMaxIndex := UDINT_TO_USINT (States.udFilesInDir);
udCurrentFile := 0;
enDirStep := enDirStep_READDIR;
ELSIF (FUBs.DirInfo.status < ERR_FUB_ENABLE_FALSE) THEN
//Fehler
FUBStates.DirInfo := FUBs.DirInfo.status;
FUBs.DirInfo.enable := FALSE;
enDirStep := enDirStep_WAIT;
END_IF
//Datei lesen
//=================================
enDirStep_READDIR:
FUBs.DirRead.enable := (udCurrentFile <= States.udFilesInDir);
FUBs.DirRead.entry := udCurrentFile;
FUBs.DirRead.pDevice := ADR (strDevice);
FUBs.DirRead.pPath := ADR (strPath);
FUBs.DirRead.option := fiFILE;
FUBs.DirRead.pData := ADR (DirReadData);
FUBs.DirRead.data_len := SIZEOF (DirReadData);
IF (udCurrentFile > States.udFilesInDir) THEN
enDirStep := enDirStep_WAIT;
ELSIF (FUBs.DirRead.status = ERR_OK) THEN
FUBs.DirRead.enable := FALSE;
enDirStep := enDirStep_BUILDLIST;
ELSIF (FUBs.DirRead.status < ERR_FUB_ENABLE_FALSE) THEN
//Fehler
FUBStates.DirRead := FUBs.DirRead.status;
FUBs.DirRead.enable := FALSE;
enDirStep := enDirStep_WAIT;
END_IF
//Liste Bilden
enDirStep_BUILDLIST:
brsmemcpy (ADR (gstrFilenames[udCurrentFile]), ADR (DirReadData.Filename), SIZEOF (gstrFilenames[0]));
udCurrentFile := udCurrentFile + 1;
enDirStep := enDirStep_READDIR;
END_CASE
//Buttons Anzeigen Verriegeln etc.
VCCtrl.LineDown.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
VCCtrl.LineDown.usStatus.1 := (States.udOrgLineOffset[0] >= States.udFileLen);
VCCtrl.LineUp.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
VCCtrl.LineUp.usStatus.1 := (States.udOrgLineOffset[0] = 0) AND (VCCtrl.ListboxEdit.usIndexDatapoint = 0);
VCCtrl.ScrollDown.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
VCCtrl.ScrollDown.usStatus.1 := (States.udOrgLineOffset[0] >= States.udFileLen);
VCCtrl.ScrollUp.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
VCCtrl.ScrollUp.usStatus.1 := (States.udOrgLineOffset[0] = 0);
VCCtrl.Cancel.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
VCCtrl.DropDownBoxFile.usStatus.0 := (enFileStep <> enFileStep_WAIT);
VCCtrl.LoadEdit.usStatus.0 := (enFileStep <> enFileStep_WAIT);
CASE enFileStep OF
//auf Befehl warten
//=================================
enFileStep_WAIT:
FUBs.FileOpen.enable := FALSE;
IF pFileInterface.bReadFile THEN
strFile := gstrFilenames[usEditFileSelection];
IF VCCtrl.LoadEdit.bCommand THEN
VCCtrl.LoadEdit.bCommand := FALSE;
VCCtrl.DropDownBoxFile.bCompletion := FALSE;
enFileStep := enFileStep_OPEN;
pFileInterface.bReadFile := FALSE;
END_IF
IF (States.udFileHandle > 0) THEN
@@ -28,10 +114,9 @@ PROGRAM _CYCLIC
//=================================
enFileStep_OPEN:
FUBs.FileOpen.mode := fiREAD_WRITE;
FUBs.FileOpen.pDevice := ADR (pFileInterface.strDevice);
FUBs.FileOpen.pFile := ADR (pFileInterface.strFile);
FUBs.FileOpen.pDevice := ADR (strDevice);
FUBs.FileOpen.pFile := ADR (strFile);
FUBs.FileOpen.enable := TRUE;
IF (FUBs.FileOpen.status = ERR_OK) THEN
FUBs.FileOpen.enable := FALSE;
enFileStep := enFileStep_READLINE;
@@ -100,19 +185,37 @@ PROGRAM _CYCLIC
//Auf neue Befehle warten
//=================================
enFileStep_WAITCMD2:
IF bScrollDown THEN
IF VCCtrl.ScrollDown.bCommand AND (States.udOrgLineOffset[0] < States.udFileLen) THEN
FOR usi := 0 TO Parameter.usPageLines DO
//Zeilen shiften
brsstrcpy (ADR (strLines[usi]), ADR (strLines[usi + Parameter.usPageLines]));
END_FOR
States.uiCurrentBlockLine := Parameter.usPageLines;
bScrollDown := FALSE;
VCCtrl.ScrollDown.bCommand := FALSE;
enFileStep := enFileStep_READLINE;
ELSIF bScrollUp AND (States.udOrgLineOffset[0] > 0) THEN
bScrollUp := FALSE;
ELSIF VCCtrl.ScrollUp.bCommand AND (States.udOrgLineOffset[0] > 0) THEN
VCCtrl.ScrollUp.bCommand := FALSE;
States.udReadlineOffset := 0;
States.uiCurrentBlockLine := 0;
enFileStep := enFileStep_READLINE;
ELSIF VCCtrl.LineUp.bCommand THEN
IF (VCCtrl.ListboxEdit.usIndexDatapoint > 0) THEN
VCCtrl.ListboxEdit.usIndexDatapoint := VCCtrl.ListboxEdit.usIndexDatapoint - 1;
ELSIF (States.udOrgLineOffset[0] > 0) THEN
//Seite scrollen
VCCtrl.ScrollUp.bCommand := FALSE;
END_IF
VCCtrl.LineUp.bCommand := FALSE;
ELSIF VCCtrl.LineDown.bCommand THEN
IF (VCCtrl.ListboxEdit.usIndexDatapoint < VCCtrl.ListboxEdit.usMaxIndex) THEN
VCCtrl.ListboxEdit.usIndexDatapoint := VCCtrl.ListboxEdit.usIndexDatapoint + 1;
ELSIF (States.udOrgLineOffset[0] < States.udFileLen) THEN
VCCtrl.ScrollDown.bCommand := TRUE;
END_IF
VCCtrl.LineDown.bCommand := FALSE;
ELSIF VCCtrl.Cancel.bCommand THEN
VCCtrl.Cancel.bCommand := FALSE;
enFileStep := enFileStep_CLOSE;
END_IF
IF VCCtrl.LineEdit.bCompletion THEN
@@ -211,6 +314,9 @@ PROGRAM _CYCLIC
END_IF
END_CASE
FUBs.DirInfo ();
FUBs.DirRead ();
FUBs.FileOpen ();
FUBs.FileRead ();
FUBs.FileWrite ();

View File

@@ -1,7 +1,7 @@
PROGRAM _INIT
Parameter.usEditLines := 10;
Parameter.usEditLines := 12;
Parameter.usPageLines:= 5;
bReadDir := TRUE;
END_PROGRAM

View File

@@ -13,6 +13,13 @@ TYPE
enFileStep_WriteFILEREST, (*Restliches File Schreiben*)
enFileStep_CLOSE (*Datei Schlie<69>en*)
);
typ_enStepDir :
(
enDirStep_WAIT,
enDirStep_DIRINFO,
enDirStep_READDIR,
enDirStep_BUILDLIST
);
typ_States : STRUCT
udFileHandle : UDINT; (*FileHandle*)
udReadlineOffset : UDINT; (*Offset*)
@@ -22,6 +29,11 @@ TYPE
udOrgLineLen : ARRAY[0..EDIT_LINES]OF UDINT; (*Zeilen L<>nge (um L<>ngen<65>nderung festzustellen*)
udOrgLineOffset : ARRAY[0..EDIT_LINES]OF UDINT; (*Offeset der Zeile im File*)
uiCurrentBlockLine : UINT; (*Aktuelle Zeile (im Block)*)
udFilesInDir : UDINT; (*Dateien in Verzeichnis*)
END_STRUCT;
typ_FUBstates : STRUCT
DirInfo : UINT;
DirRead : UINT;
END_STRUCT;
typ_Parameter : STRUCT
usEditLines : USINT; (*Anzahl der Zeilen zum Editieren*)
@@ -37,6 +49,9 @@ TYPE
FileClose : FileClose := (0);
FileRead : FileReadEx := (0); (*Datei Lesen (mit L<>nge Gelesener Daten)*)
FileWrite : FileWriteEx := (0); (*Datei Schreiben (Optional mit Truncate)*)
DirInfo : DirInfo; (*Verzeichnisinfo*)
DirRead : DirRead; (*Verzeichnisinhalt lesen*)
TON_ReadDir : TON;
END_STRUCT;
END_TYPE
@@ -54,8 +69,16 @@ TYPE
Status : typ_VCStatus;
ListboxEdit : gtyp_VCListbox; (*Listbox Editor*)
LineEdit : gtyp_VCString;
DropDownBoxFile : gtyp_VCDropdownbox;
LineUp : gtyp_VCButton;
LineDown : gtyp_VCButton;
ScrollUp : gtyp_VCButton;
ScrollDown : gtyp_VCButton;
Slider : gtyp_VCSlider;
Cancel : gtyp_VCButton;
LoadEdit : gtyp_VCButton;
END_STRUCT;
typ_VCStatus : STRUCT (*VC Statis - Allgemein*)
usProfilMode : USINT; (*Status Datenpunkt Modusanwahl Tuning*)
usDummy : USINT;
END_STRUCT;
END_TYPE

View File

@@ -4,13 +4,19 @@ END_VAR
VAR
bScrollDown : BOOL;
bScrollUp : BOOL;
bReadDir : BOOL;
usi : USINT;
usEditFileSelection : USINT;
udi : UDINT;
udCurrentFile : UDINT;
udNewLen : UDINT;
usBuffer : {REDUND_UNREPLICABLE} ARRAY[0..999999] OF USINT; (*Puffer*)
END_VAR
(*//Strings*)
VAR
strDevice : STRING[80];
strPath : STRING[80];
strFile : STRING[80];
strLineEnd : STRING[3] := '$r$n';
strReadBuffer : STRING[80];
strWriteBuffer : STRING[80];
@@ -20,9 +26,12 @@ END_VAR
(*//Strukturen*)
VAR
enFileStep : typ_enStepFile;
enDirStep : typ_enStepDir;
States : typ_States;
Parameter : typ_Parameter;
VCCtrl : typ_VCCtrl; (*Seiteninterface spezifisch*)
DirReadData : fiDIR_READ_DATA;
FUBStates : typ_FUBstates;
END_VAR
(*//Funktionsbl<62>cke*)
VAR

View File

@@ -0,0 +1,4 @@
PROGRAM _CYCLIC
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,6 @@
PROGRAM _EXIT
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Cyclic code">Cyclic.st</File>
<File Description="Init code">Init.st</File>
<File Description="Exit code">Exit.st</File>
<File Description="Local data types" Private="true">Types.typ</File>
<File Description="Local variables" Private="true">Variables.var</File>
</Files>
</Program>

View File

@@ -0,0 +1,9 @@
PROGRAM _INIT
MpFUBs.MpFileManagerConfig.MpLink := ADR (gFileManagerUI);
MpFUBs.MpFileManagerUI.MpLink := ADR (gFileManagerUI);
END_PROGRAM

View File

@@ -0,0 +1,8 @@
(*//FunctionBlocks / Daten*)
TYPE
typ_MpFUB : STRUCT (*Funktionsbausteine*)
MpFileManagerUI : MpFileManagerUI;
MpFileManagerConfig : MpFileManagerConfig;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,4 @@
(*//Funktionsbl<62>cke*)
VAR
MpFUBs : typ_MpFUB;
END_VAR

View File

@@ -0,0 +1,3 @@
VAR
gstrFilenames : ARRAY[0..100] OF STRING[25];
END_VAR

View File

@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.5.113 SP?>
<?AutomationStudio Version=4.3.7.46 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Globale Variablen - File">GlobalFile.var</Object>
<Object Type="File" Description="Package Variablen - File" Private="true">PackageFile.var</Object>
<Object Type="File" Description="Package Typen - File" Private="true">Package.typ</Object>
<Object Type="Program" Language="IEC" Description="Simple Texteditor">FileEdit</Object>
<Object Type="Program" Language="IEC" Description="Filemanagement">FileMan</Object>
</Objects>
</Package>

View File

@@ -1,8 +0,0 @@
TYPE
ptyp_FileInterface : STRUCT (*Interface*)
strDevice : STRING[80] := ''; (*Filedevice*)
strFile : STRING[80] := ''; (*Filename*)
bReadFile : BOOL := FALSE; (*Datei einlesen*)
END_STRUCT;
END_TYPE

View File

@@ -1,6 +1,3 @@
VAR RETAIN
pFileInterface : ptyp_FileInterface;
END_VAR
VAR
VisuPageCtrl_TempCtrl : gtyp_VisuCtrlPage; (*Seiteninterface allgemein*)
VisuPageCtrl_File : gtyp_VisuCtrlPage; (*Seiteninterface allgemein*)
END_VAR

View File

@@ -35,6 +35,8 @@ VAR
gbSPLCReadbackInfeed : BOOL;
gbSPLCResetReadbackError : BOOL;
gbSPLCMachineOn : BOOL;
gbSPLCJogMode : BOOL; (*Handbetrieb*)
gbSPLCResetBumperError : BOOL; (*Handschutzleiste Ausl<73>sung quittieren*)
END_VAR
(*2 R<>cklesesignale direkt von Eingang gemappt*)
(*----------------------------------------------------------------------------------------------------------------*)
@@ -43,20 +45,26 @@ END_VAR
VAR
gbSPLCInEstopOk : BOOL; (*Safety PLC E-Stop ist Ok*)
gbSPLCInAxisEnabledOk : BOOL; (*Safety PLC Achsen freigegeben Ok*)
gbSPLCInDoorsOk : BOOL; (*Safety PLC T<EFBFBD>rkreis ist Ok*)
gbSPLCInDoorsBackOk : BOOL; (*Safety PLC Wartungst<EFBFBD>ren hinten Ok*)
gbSPLCInDoorsFrontOk : BOOL; (*Safety PLC Wartungst<73>ren hinten Ok*)
gbSPLCInRdbckErrorEStop : BOOL; (*Safety PLC R<>cklesefehler E-Stop*)
gbSPLCInRdbckErrorInfeed : BOOL; (*Safety PLC R<>cklesefehler Einlegebereich*)
gbSPLCInErrorBumper : BOOL; (*Ausl<73>sung Handschutzleiste*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*I/O from SLX*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInFrontGateOk : BOOL; (*Sicherer Eingang 01/02 Equivalent - Frontt<74>r (Schiebet<65>r) geschlossen*)
gbSInMaintenanceDoorFrontOk : BOOL; (*Sicherer Eingang 03/04 Equivalent - Fr<46>ntt<74>r (Wartung) geschlossen*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST2 - SC2212*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST2ModuleOk : BOOL;
gbSInFrontGateOk : BOOL; (*Sicherer Eingang 01/02 Equivalent - Frontt<EFBFBD>r geschlossen*)
gbSInMaintenanceDoorOk : BOOL; (*Sicherer Eingang 03/04 Equivalent - Wartungst<73>r geschlossen*)
gbIF6ST2ModuleOk : {REDUND_UNREPLICABLE} BOOL := FALSE;
gbSInMaintenanceDoorBackOk : BOOL; (*Sicherer Eingang 01/02 Equivalent - Wartungst<EFBFBD>r hinten Fl<46>gel 1 geschlossen*)
gbSInMaintenanceDoorBack2Ok : BOOL; (*Sicherer Eingang 03/04 Equivalent - Wartungst<73>r hinten Fl<46>gel 2 geschlossen*)
gbSInBumperGateOk : BOOL; (*Sicherer Eingang 05/06 Equivalent - Handschutzleiste Frontt<74>r*)
gbSOuEnableAxisses : BOOL; (*Sicherer Ausgang 01 - Freigabe Achsen*)
gbSOuCloseFrontgate : BOOL; (*Sicherer Ausgang 02 - Frontt<74>r schlie<69>en*)
@@ -67,11 +75,11 @@ END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST3ModuleOk : BOOL;
gbSInEStopPanel : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt Panel*)
gbSInEStop : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothaltkette*)
gbSInAckKeyPanel : BOOL; (*Sicherer Eingang 02/03 Equivalent - Zustimmtaster Panel*)
gbSInEstopHPPump : BOOL; (*Sicherer Eingang 04 - Nothalt von HD Pumpe*)
gbSOuMainsSafetyEStop : BOOL;
gbSOuMainsSafetyDoors : BOOL;
gbSOuMainsSafetyEStop : BOOL; (*Nach Nothalt*)
gbSOuMainsSafetyDoors : BOOL; (*Nach Schutzt<7A>r*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST4 - SIO4110*)
@@ -89,11 +97,10 @@ VAR
gbOu5T1DI1 : BOOL; (*Eingang FU*)
gbOu5T1DI2 : BOOL; (*Eingang FU*)
gbOu6T1DI1 : BOOL; (*Eingang FU*)
gbOu7T1DI1 : BOOL; (*Eingang FU*)
gbOu6T1DI2 : BOOL; (*Eingang FU*)
gbOu7T1DI1 : BOOL; (*Eingang FU*)
gbOu7T1DI2 : BOOL; (*Eingang FU*)
gbOuPower110A1 : BOOL; (*Versorgung Auswertger<65>t Handschutzleiste*)
gbOuMaintenanceDoorLock : BOOL; (*Zuhaltung Wartungst<73>r*)
END_VAR
(*//1Spare*)
VAR
@@ -107,6 +114,9 @@ VAR
gbOuAxisYOpenBrake : BOOL; (*Bremse Y-Achse <20>ffnen*)
gbOuAxisAOpenBrake : BOOL; (*Bremse A-Achse <20>ffnen*)
gbOuAxisShuttleOpenBrake : BOOL; (*Bremse Shuttle <20>ffnen*)
gbOuLEDStartKey : BOOL; (*Leuchtmelder Start (gn)*)
gbOuLEDReset : BOOL; (*Leuchtmelder Quittieren (rt)*)
gbOuLEDResetDoor : BOOL; (*Leuchtmelder Anforder*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST7 - 15K6 - DI9371 (Eing<6E>nge Allgemein)*)
@@ -116,10 +126,11 @@ VAR
gbInDropoutFuse10F3 : BOOL; (*Sicherungsfall 10F3*)
gbInDropoutFuse10F4 : BOOL; (*Sicherungsfall 10F4*)
gbInDropoutFuse10F5 : BOOL; (*Sicherungsfall 10F5*)
gbInAirOkEStop : BOOL; (*Presse in Position unten (AS Werkzeug1)*)
gbInAirOkDoors : BOOL; (*Presse in Position unten (AS Werkzeug2)*)
gbInMaintenanceDoorDiag : BOOL; (*T<>r Diagnose*)
gbInMaintenanceDoorClosed : BOOL; (*T<>r Meldung Geschlossen (Keine Info Verriegelt)*)
gbInAirOkEStop : BOOL; (*Druckluft nach Nothalt*)
gbInAirOkDoors : BOOL; (*Druckluft nach Schutzt<7A>r*)
END_VAR
(*//2Spare*)
VAR
gbIn110A1Error : BOOL; (*Fehlermeldung Auswerteger<65>t Handschutzleiste*)
gbInReadbackEstop : BOOL; (*R<>ckf<6B>hrkreis Sicherheit nach Nothalt*)
gbInReadbackDoors : BOOL; (*R<>ckf<6B>hrkreis Sicherheit nach Schutzt<7A>r*)
@@ -130,6 +141,17 @@ END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST8ModuleOk : BOOL;
gbInStartKey : BOOL; (*Starttaster*)
gbInResetKey : BOOL; (*Resettaster*)
gbInResetDoorKey : BOOL; (*Quittierung Wartungst<73>ren*)
gbInWaterTempMax : BOOL; (*Wassertemperatur HD Pumpe Max*)
gbInWaterPressMin : BOOL; (*Wasserdruck HD Pumpe Min*)
gbInAirPressMin : BOOL; (*Luftdruck HD Pumpe Min*)
gbInWaterLvlMin : BOOL; (*Wasserlevel HD Pumpe Min*)
gbInWaterPrePress3Bar : BOOL; (*Wasservordruck 3 bar*)
gbInHPPumpOn : BOOL; (*HD Pumpe ein*)
gbInHPOn : BOOL; (*Hochdruck EIN*)
gbInFrontGateOpen : BOOL; (*Zugangst<73>r ist offen*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST11 - BT9400 ( Bustransmitter P2)*)
@@ -152,6 +174,3 @@ END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbInStartKey : BOOL;
END_VAR

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsArSdm library supports the System Diagnostics Manager">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The AsArSdm library supports the System Diagnostics Manager" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsArSdm.fun</File>
<File>AsArSdm.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsBrStr Library contains FBKs for memory and character string handling.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The AsBrStr Library contains FBKs for memory and character string handling." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsBrStr.fun</File>
<File>AsBrStr.typ</File>
<File>AsBrStr.var</File>
</Files>
</Library>
</Library>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsBrWStr library allows 8-bit character strings to be implemented for 16-bit WC (AsBrWStr) strings.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The AsBrWStr library allows 8-bit character strings to be implemented for 16-bit WC (AsBrWStr) strings." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsBrWStr.fun</File>
<File>AsBrWStr.typ</File>
<File>AsBrWStr.var</File>
</Files>
</Library>
</Library>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsMem library makes it possible to manage memory blocks located in large memory areas (memory partitions).">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The AsMem library makes it possible to manage memory blocks located in large memory areas (memory partitions)." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsMem.fun</File>
<File>AsMem.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.5.113 SP?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="This library contains FBKs for exchanging data (data stream) via stream sockets (TCP)." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsTCP.fun</File>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="This library contains function blocks to handle USB devices on the target.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="This library contains function blocks to handle USB devices on the target." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsUSB.fun</File>
<File>AsUSB.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsZip library offers compressing archive-support">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The AsZip library offers compressing archive-support" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsZip.fun</File>
<File>AsZip.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.4.121 SP?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Version="5.01.3" Description="This library contains functionality to execute traces (to sample numeric values periodically for a defined time-span)" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>CoTrace.fun</File>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The DataObj library can be used to dynamically create, dynamically delete and copy data objects, etc. ">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The DataObj library can be used to dynamically create, dynamically delete and copy data objects, etc. " xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>DataObj.fun</File>
<File>DataObj.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The FileIO library provides function blocks for file handling.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The FileIO library provides function blocks for file handling." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>FileIO.fun</File>
<File>FileIO.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Version="5.01.0" Description="File explorer for B+R file devices" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>MpFile.typ</File>
<File>MpFileError.typ</File>
<File>MpFileAlarm.typ</File>
<File>MpFile.fun</File>
</Files>
<Dependencies>
<Dependency ObjectName="FileIO" />
<Dependency ObjectName="MpBase" FromVersion="5.01.0" ToVersion="5.01.9" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,41 @@
FUNCTION_BLOCK MpFileManagerUI (*File management system and UI connection to VC4*) (* $GROUP=mapp Services,$CAT=File Explorer,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpFile.png *)
VAR_INPUT
MpLink : REFERENCE TO MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*)
Enable : BOOL; (*Enables/Disables the function block*) (* *) (*#PAR#;*)
ErrorReset : BOOL; (*Resets function block errors*) (* *) (*#PAR#;*)
UISetup : MpFileManagerUISetupType; (*Used to configure the elements connected to the HMI application*) (* *) (*#PAR#;*)
UIConnect : REFERENCE TO MpFileManagerUIConnectType; (*This structure contains the parameters needed for the connection to the HMI application*) (* *) (*#CMD#;*)
END_VAR
VAR_OUTPUT
Active : BOOL; (*Indicates whether the function block is active*) (* *) (*#PAR#;*)
Error : BOOL; (*Indicates that the function block is in an error state or a command was not executed correctly*) (* *) (*#PAR#;*)
StatusID : DINT; (*Status information about the function block*) (* *) (*#PAR#; *)
Info : MpFileInfoType; (*Additional information about the component*) (* *) (*#CMD#;*)
END_VAR
VAR
Internal : MpComInternalDataType; (*Internal stucture*)
END_VAR
END_FUNCTION_BLOCK
FUNCTION_BLOCK MpFileManagerConfig (*mapp component for read/write component configuration*) (* $GROUP=mapp Services,$CAT=File Explorer,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpFile.png *)
VAR_INPUT
MpLink : REFERENCE TO MpComIdentType; (*Incoming communication handle (mapp standard interface)*) (* *) (*#PAR#;*)
Enable : BOOL; (*Enables/Disables the function block (mapp standard interface)*) (* *) (*#PAR#;*)
ErrorReset : BOOL; (*Resets all function block errors (mapp standard interface)*) (* *) (*#PAR#;*)
Configuration : REFERENCE TO MpFileManagerConfigType; (*The component configuration structure.*) (* *) (*#PAR#; *)
Load : BOOL; (*Reads the component configuration.*) (* *) (*#CMD#; *)
Save : BOOL; (*Writes the component configuration.*) (* *) (*#CMD#; *)
END_VAR
VAR_OUTPUT
Active : BOOL; (*Function block is active (mapp standard interface)*) (* *) (*#PAR#;*)
Error : BOOL; (*Indicates an error (mapp standard interface)*) (* *) (*#PAR#;*)
StatusID : DINT; (*Error/Status information (mapp standard interface)*) (* *) (*#PAR#; *)
CommandBusy : BOOL; (*Function block is busy processing a command*) (* *) (*#CMD#OPT#;*)
CommandDone : BOOL; (*True if a command finshed successfully.*) (* *) (*#CMD#;*)
Info : MpFileInfoType; (*Provide any further useful information as function block output.(mapp standard interface)*) (* *) (*#CMD#; *)
END_VAR
VAR
Internal : MpComInternalDataType; (*Internal data*)
END_VAR
END_FUNCTION_BLOCK

View File

@@ -0,0 +1,135 @@
TYPE
MpFileManagerUIItemType : STRUCT
Name : STRING[255]; (*Filename / Folder name*)
Size : UDINT; (*File size [bytes]*)
LastModified : DATE_AND_TIME; (*Date when this file/folder was last modified*)
ItemType : MpFileManagerUIItemTypeEnum; (*File type (.csv, .jpg, etc.)*)
IsSelected : BOOL; (*Indicates that a file/folder is selected*)
IsFolder : BOOL; (*Indicates that the element is a folder*)
END_STRUCT;
MpFileManagerUIItemTypeEnum :
(
mpFILE_ITEM_TYPE_NONE := 0, (*No type defined*)
mpFILE_ITEM_TYPE_FOLDER := 1, (*Indicates that the element is a folder*)
mpFILE_ITEM_TYPE_FILE := 2, (*Indicates that the element is a file*)
mpFILE_ITEM_TYPE_TXT := 3, (*Indicates that the element is a text file*)
mpFILE_ITEM_TYPE_HTML := 4, (*Indicates that the element is an HTML file*)
mpFILE_ITEM_TYPE_DOC := 5, (*Indicates that the element is a Word file (.doc) *)
mpFILE_ITEM_TYPE_XLS := 6, (*Indicates that the element is an Excel file (.xls)*)
mpFILE_ITEM_TYPE_XML := 7, (*Indicates that the element is an XML file (.xml)*)
mpFILE_ITEM_TYPE_CSV := 8, (*Indicates that the element is an CSV file (.csv)*)
mpFILE_ITEM_TYPE_JPG := 9, (*Indicates that the element is an image file (.jpg)*)
mpFILE_ITEM_TYPE_BMP := 10, (*Indicates that the element is an image file (.bmp)*)
mpFILE_ITEM_TYPE_USER1 := 89, (*Indicates that the element is an user predefined type 1*)
mpFILE_ITEM_TYPE_USER2 := 90, (*Indicates that the element is an user predefined type 2*)
mpFILE_ITEM_TYPE_USER3 := 91, (*Indicates that the element is an user predefined type 3*)
mpFILE_ITEM_TYPE_USER4 := 92, (*Indicates that the element is an user predefined type 4*)
mpFILE_ITEM_TYPE_USER5 := 93, (*Indicates that the element is an user predefined type 5*)
mpFILE_ITEM_TYPE_USER6 := 94, (*Indicates that the element is an user predefined type 6*)
mpFILE_ITEM_TYPE_USER7 := 95, (*Indicates that the element is an user predefined type 7*)
mpFILE_ITEM_TYPE_USER8 := 96, (*Indicates that the element is an user predefined type 8*)
mpFILE_ITEM_TYPE_USER9 := 97, (*Indicates that the element is an user predefined type 9*)
mpFILE_ITEM_TYPE_USER10 := 98, (*Indicates that the element is an user predefined type 10*)
mpFILE_ITEM_TYPE_UNKNOWN := 99 (*Indicates that the file type is unknown*)
);
MpFileManagerUISortOrderEnum :
(
mpFILE_SORT_BY_NAME_ASC := 0, (*Sorts in ascending (alphabetic) order*)
mpFILE_SORT_BY_NAME_DESC := 1, (*Sorts in descending (alphabetic) order*)
mpFILE_SORT_BY_SIZE_ASC := 2, (*Sorts in ascending order by file size*)
mpFILE_SORT_BY_SIZE_DES := 3, (*Sorts in descending order by file size*)
mpFILE_SORT_BY_MOD_TIME_ASC := 4, (*Sorts in ascending order by date last modified*)
mpFILE_SORT_BY_MOD_TIME_DESC := 5 (*Sorts in descending order by date last modified*)
);
MpFileManagerUIMessageEnum :
(
mpFILE_MSG_OK := 0, (*Dialog box for requesting confirmation of input*)
mpFILE_MSG_CONFIRM_DELETE := 1, (*Dialog box for requesting confirmation of deletion*)
mpFILE_MSG_CONFIRM_OVERWRITE := 2, (*Dialog box for requesting confirmation of overwriting*)
mpFILE_MSG_BUSY := 3 (*Dialog box for requesting confirmation of busy UI*)
);
MpFileDiagType : STRUCT
StatusID : MpFileStatusIDType; (*StatusID diagnostic structure*)
END_STRUCT;
MpFileStatusIDType : STRUCT
ID : MpFileErrorEnum; (*Error code for mapp component*)
Severity : MpComSeveritiesEnum; (*Describes the type of information supplied by the status ID (success, information, warning, error)*)
Code : UINT; (*Code for the status ID. This error number can be used to search for additional information in the help system.*)
END_STRUCT;
MpFileInfoType : STRUCT
Diag : MpFileDiagType; (*Diagnostic structure for the status ID*)
END_STRUCT;
MpFileManagerUIStatusEnum :
(
mpFILE_UI_STATUS_IDLE := 0, (*Indicates that no process is currently active*)
mpFILE_UI_STATUS_REFRESH := 1, (*Updating elements*)
mpFILE_UI_STATUS_CHANGE_PAGE := 2, (*Page change active*)
mpFILE_UI_STATUS_CHANGE_DIR := 3, (*Folder change active*)
mpFILE_UI_STATUS_CHANGE_DEVICE := 4, (*File Device Change active*)
mpFILE_UI_STATUS_CREATE := 5, (*Creating a file/folder active*)
mpFILE_UI_STATUS_RENAME := 6, (*Renaming a file/folder active*)
mpFILE_UI_STATUS_DELETE := 7, (*Deleting a file/folder active*)
mpFILE_UI_STATUS_COPY := 8, (*Copying a file/folder active*)
mpFILE_UI_STATUS_CUT := 9, (*Cutting a file/folder active*)
mpFILE_UI_STATUS_PASTE := 10, (*Pasting a file/folder active*)
mpFILE_UI_STATUS_SORT := 11, (*Sorting files/folders in specified sort order*)
mpFILE_UI_STATUS_ERROR := 99 (*The last operation generated an error*)
);
MpFileManagerUISetupType : STRUCT
FileListSize : UINT := 10; (*Number of files to be displayed on one page of the list in the HMI application*)
FileListScrollWindow : USINT := 1; (*Determines how many entries from the list are displayed in advance when scrolling up and down*)
END_STRUCT;
MpFileManagerUIConnectType : STRUCT
Status : MpFileManagerUIStatusEnum; (*Current operation*)
DeviceList : MpFileManagerUIDeviceListType; (*List of data storage media (file devices) accessible by the file manager*)
File : MpFileManagerUIFileType; (*Contains the file list as well as additional information about files,folders and possible commands*)
MessageBox : MpFileManagerUIMessageBoxType; (*Controls dialog boxes*)
DefaultLayerStatus : UINT; (*Status DP for the default layer of the visu page where the file manager is being displayed*)
END_STRUCT;
MpFileManagerUIMessageBoxType : STRUCT
LayerStatus : UINT; (*Visibility of the dialog box*)
Type : MpFileManagerUIMessageEnum; (*Type of dialog box*)
ErrorNumber : UINT; (*Current error number to be displayed*)
Confirm : BOOL; (*Confirms the operation*)
Cancel : BOOL; (*Cancels the operation*)
END_STRUCT;
MpFileManagerUIPathInfoType : STRUCT
CurrentDir : STRING[255]; (*Current folder name*)
FileCount : UDINT; (*Number of files in the current folder*)
FolderCount : UDINT; (*Number of subfolders in the current folder*)
END_STRUCT;
MpFileManagerUIFileType : STRUCT
List : MpFileManagerUIFileListType; (*List of all folders and files under the current path, as well as the navigation of the list*)
Filter : STRING[255]; (*Filter used to sort the files*) (* *) (*#CMD#OPT#;*)
SortOrder : MpFileManagerUISortOrderEnum; (*Responsible for the order of files in the list*)
Refresh : BOOL; (*Updates the file list in the current folder*)
PathInfo : MpFileManagerUIPathInfoType; (*Information about the current path*)
EnterFolder : BOOL; (*Navigates one folder down*)
FolderUp : BOOL; (*Navigates one folder up*)
MultiSelect : BOOL; (*Allows the selection of multiple elements at the same time*)
Delete : BOOL; (*Deletes a file or folder*)
Copy : BOOL; (*Copying a file/folder*)
Cut : BOOL; (*Cuts a file or folder*)
Paste : BOOL; (*Pastes a file or folder*)
NewName : STRING[255]; (*The new name of a file or folder when using the "Rename" or "CreateFolder" command*)
Rename : BOOL; (*Renames a file or folder*)
CreateFolder : BOOL; (*Creates a folder*)
END_STRUCT;
MpFileManagerUIFileListType : STRUCT
Items : ARRAY[0..49]OF MpFileManagerUIItemType; (*List of all files and folders under the current path*)
PageUp : BOOL; (*Jumps to the start of the current page and then scrolls up one page at a time*)
StepUp : BOOL; (*Selects the previous entry in the list*)
PageDown : BOOL; (*Jumps to the end of the current page and then scrolls down one page at a time*)
StepDown : BOOL; (*Selects the next entry in the list*)
RangeStart : REAL; (*Shows a bar indicating which part of the list is currently being displayed-Start [%]*)
RangeEnd : REAL; (*Shows a bar indicating which part of the list is currently being displayed-End [%]*)
END_STRUCT;
MpFileManagerUIDeviceListType : STRUCT
DeviceNames : ARRAY[0..9]OF STRING[50]; (*List of all available data storage media*)
SelectedIndex : UINT; (*Index of the entry currently selected in the list*)
END_STRUCT;
MpFileManagerConfigType : STRUCT
CustomizedFileType : ARRAY[0..9]OF STRING[5]; (*Customized file type names*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,9 @@
TYPE
MpFileUIAlarmEnum :
( (* Alarms of MpFile UI *)
mpFILE_ALM_DEVICE_NOT_FOUND := 0, (*FileDevice not found*)
mpFILE_ALM_ALREADY_EXISTING := 1, (*File/Folder already exists*)
mpFILE_ALM_ERROR_FILE_SYSTEM := 2 (*General error in file system*)
);
END_TYPE

View File

@@ -0,0 +1,23 @@
TYPE
MpFileErrorEnum :
( (* Error numbers of library MpFile *)
mpFILE_NO_ERROR := 0, (* No error *)
mpFILE_ERR_ACTIVATION := -1064239103, (* Could not create component [Error: 1, 0xc0910001] *)
mpFILE_ERR_MPLINK_NULL := -1064239102, (* MpLink is NULL pointer [Error: 2, 0xc0910002] *)
mpFILE_ERR_MPLINK_INVALID := -1064239101, (* MpLink connection not allowed [Error: 3, 0xc0910003] *)
mpFILE_ERR_MPLINK_CHANGED := -1064239100, (* MpLink modified [Error: 4, 0xc0910004] *)
mpFILE_ERR_MPLINK_CORRUPT := -1064239099, (* Invalid MpLink contents [Error: 5, 0xc0910005] *)
mpFILE_ERR_MPLINK_IN_USE := -1064239098, (* MpLink already in use [Error: 6, 0xc0910006] *)
mpFILE_ERR_MISSING_UICONNECT := -1064165376, (* Missing value on UIConnect [Error: 8192, 0xc0922000] *)
mpFILE_ERR_CMD_NOT_ALLOWED := -1064165375, (* Command {2:Command} not allowed [Error: 8193, 0xc0922001] *)
mpFILE_ERR_NOTHING_TO_PASTE := -1064165374, (* No element to paste [Error: 8194, 0xc0922002] *)
mpFILE_ERR_NOTHING_SELECTED := -1064165373, (* Nothing selected [Error: 8195, 0xc0922003] *)
mpFILE_ERR_DIR_ALREADY_EXISTS := -1064165372, (* Folder {2:PathName} already exists in {3:DeviceName} [Error: 8196, 0xc0922004] *)
mpFILE_ERR_INVALID_FILE_DEV := -1064165371, (* Invalid file device {2:DeviceName} [Error: 8197, 0xc0922005] *)
mpFILE_ERR_NAME_EMPTY := -1064165370, (* New name not entered [Error: 8198, 0xc0922006] *)
mpFILE_ERR_INVALID_NAME := -1064165369, (* Invaild name (ErrorCause: {1:ErrorNumber}) [Error: 8199, 0xc0922007] *)
mpFILE_ERR_PASTE_NOT_ALLOWED := -1064165368, (* Paste not allowed (ErrorCause: {1:ErrorNumber}) [Error: 8200, 0xc0922008] *)
mpFILE_ERR_FILE_SYSTEM := -1064165367 (* General error from file system (ErrorCause: {1:ErrorNumber}) [Error: 8201, 0xc0922009] *)
);
END_TYPE

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,258 @@
/* Automation Studio generated header file */
/* Do not edit ! */
/* MpFile 5.01.0 */
#ifndef _MPFILE_
#define _MPFILE_
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef _MpFile_VERSION
#define _MpFile_VERSION 5.01.0
#endif
#include <bur/plctypes.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
#ifdef _SG4
#include "MpBase.h"
#include "FileIO.h"
#endif
#ifdef _SG3
#include "MpBase.h"
#include "FileIO.h"
#endif
#ifdef _SGC
#include "MpBase.h"
#include "FileIO.h"
#endif
/* Datatypes and datatypes of function blocks */
typedef enum MpFileManagerUIItemTypeEnum
{ mpFILE_ITEM_TYPE_NONE = 0,
mpFILE_ITEM_TYPE_FOLDER = 1,
mpFILE_ITEM_TYPE_FILE = 2,
mpFILE_ITEM_TYPE_TXT = 3,
mpFILE_ITEM_TYPE_HTML = 4,
mpFILE_ITEM_TYPE_DOC = 5,
mpFILE_ITEM_TYPE_XLS = 6,
mpFILE_ITEM_TYPE_XML = 7,
mpFILE_ITEM_TYPE_CSV = 8,
mpFILE_ITEM_TYPE_JPG = 9,
mpFILE_ITEM_TYPE_BMP = 10,
mpFILE_ITEM_TYPE_USER1 = 89,
mpFILE_ITEM_TYPE_USER2 = 90,
mpFILE_ITEM_TYPE_USER3 = 91,
mpFILE_ITEM_TYPE_USER4 = 92,
mpFILE_ITEM_TYPE_USER5 = 93,
mpFILE_ITEM_TYPE_USER6 = 94,
mpFILE_ITEM_TYPE_USER7 = 95,
mpFILE_ITEM_TYPE_USER8 = 96,
mpFILE_ITEM_TYPE_USER9 = 97,
mpFILE_ITEM_TYPE_USER10 = 98,
mpFILE_ITEM_TYPE_UNKNOWN = 99
} MpFileManagerUIItemTypeEnum;
typedef enum MpFileManagerUISortOrderEnum
{ mpFILE_SORT_BY_NAME_ASC = 0,
mpFILE_SORT_BY_NAME_DESC = 1,
mpFILE_SORT_BY_SIZE_ASC = 2,
mpFILE_SORT_BY_SIZE_DES = 3,
mpFILE_SORT_BY_MOD_TIME_ASC = 4,
mpFILE_SORT_BY_MOD_TIME_DESC = 5
} MpFileManagerUISortOrderEnum;
typedef enum MpFileManagerUIMessageEnum
{ mpFILE_MSG_OK = 0,
mpFILE_MSG_CONFIRM_DELETE = 1,
mpFILE_MSG_CONFIRM_OVERWRITE = 2,
mpFILE_MSG_BUSY = 3
} MpFileManagerUIMessageEnum;
typedef enum MpFileManagerUIStatusEnum
{ mpFILE_UI_STATUS_IDLE = 0,
mpFILE_UI_STATUS_REFRESH = 1,
mpFILE_UI_STATUS_CHANGE_PAGE = 2,
mpFILE_UI_STATUS_CHANGE_DIR = 3,
mpFILE_UI_STATUS_CHANGE_DEVICE = 4,
mpFILE_UI_STATUS_CREATE = 5,
mpFILE_UI_STATUS_RENAME = 6,
mpFILE_UI_STATUS_DELETE = 7,
mpFILE_UI_STATUS_COPY = 8,
mpFILE_UI_STATUS_CUT = 9,
mpFILE_UI_STATUS_PASTE = 10,
mpFILE_UI_STATUS_SORT = 11,
mpFILE_UI_STATUS_ERROR = 99
} MpFileManagerUIStatusEnum;
typedef enum MpFileErrorEnum
{ mpFILE_NO_ERROR = 0,
mpFILE_ERR_ACTIVATION = -1064239103,
mpFILE_ERR_MPLINK_NULL = -1064239102,
mpFILE_ERR_MPLINK_INVALID = -1064239101,
mpFILE_ERR_MPLINK_CHANGED = -1064239100,
mpFILE_ERR_MPLINK_CORRUPT = -1064239099,
mpFILE_ERR_MPLINK_IN_USE = -1064239098,
mpFILE_ERR_MISSING_UICONNECT = -1064165376,
mpFILE_ERR_CMD_NOT_ALLOWED = -1064165375,
mpFILE_ERR_NOTHING_TO_PASTE = -1064165374,
mpFILE_ERR_NOTHING_SELECTED = -1064165373,
mpFILE_ERR_DIR_ALREADY_EXISTS = -1064165372,
mpFILE_ERR_INVALID_FILE_DEV = -1064165371,
mpFILE_ERR_NAME_EMPTY = -1064165370,
mpFILE_ERR_INVALID_NAME = -1064165369,
mpFILE_ERR_PASTE_NOT_ALLOWED = -1064165368,
mpFILE_ERR_FILE_SYSTEM = -1064165367
} MpFileErrorEnum;
typedef enum MpFileUIAlarmEnum
{ mpFILE_ALM_DEVICE_NOT_FOUND = 0,
mpFILE_ALM_ALREADY_EXISTING = 1,
mpFILE_ALM_ERROR_FILE_SYSTEM = 2
} MpFileUIAlarmEnum;
typedef struct MpFileManagerUIItemType
{ plcstring Name[256];
unsigned long Size;
plcdt LastModified;
enum MpFileManagerUIItemTypeEnum ItemType;
plcbit IsSelected;
plcbit IsFolder;
} MpFileManagerUIItemType;
typedef struct MpFileStatusIDType
{ enum MpFileErrorEnum ID;
MpComSeveritiesEnum Severity;
unsigned short Code;
} MpFileStatusIDType;
typedef struct MpFileDiagType
{ struct MpFileStatusIDType StatusID;
} MpFileDiagType;
typedef struct MpFileInfoType
{ struct MpFileDiagType Diag;
} MpFileInfoType;
typedef struct MpFileManagerUISetupType
{ unsigned short FileListSize;
unsigned char FileListScrollWindow;
} MpFileManagerUISetupType;
typedef struct MpFileManagerUIDeviceListType
{ plcstring DeviceNames[10][51];
unsigned short SelectedIndex;
} MpFileManagerUIDeviceListType;
typedef struct MpFileManagerUIFileListType
{ struct MpFileManagerUIItemType Items[50];
plcbit PageUp;
plcbit StepUp;
plcbit PageDown;
plcbit StepDown;
float RangeStart;
float RangeEnd;
} MpFileManagerUIFileListType;
typedef struct MpFileManagerUIPathInfoType
{ plcstring CurrentDir[256];
unsigned long FileCount;
unsigned long FolderCount;
} MpFileManagerUIPathInfoType;
typedef struct MpFileManagerUIFileType
{ struct MpFileManagerUIFileListType List;
plcstring Filter[256];
enum MpFileManagerUISortOrderEnum SortOrder;
plcbit Refresh;
struct MpFileManagerUIPathInfoType PathInfo;
plcbit EnterFolder;
plcbit FolderUp;
plcbit MultiSelect;
plcbit Delete;
plcbit Copy;
plcbit Cut;
plcbit Paste;
plcstring NewName[256];
plcbit Rename;
plcbit CreateFolder;
} MpFileManagerUIFileType;
typedef struct MpFileManagerUIMessageBoxType
{ unsigned short LayerStatus;
enum MpFileManagerUIMessageEnum Type;
unsigned short ErrorNumber;
plcbit Confirm;
plcbit Cancel;
} MpFileManagerUIMessageBoxType;
typedef struct MpFileManagerUIConnectType
{ enum MpFileManagerUIStatusEnum Status;
struct MpFileManagerUIDeviceListType DeviceList;
struct MpFileManagerUIFileType File;
struct MpFileManagerUIMessageBoxType MessageBox;
unsigned short DefaultLayerStatus;
} MpFileManagerUIConnectType;
typedef struct MpFileManagerConfigType
{ plcstring CustomizedFileType[10][6];
} MpFileManagerConfigType;
typedef struct MpFileManagerUI
{
/* VAR_INPUT (analog) */
struct MpComIdentType* MpLink;
struct MpFileManagerUISetupType UISetup;
struct MpFileManagerUIConnectType* UIConnect;
/* VAR_OUTPUT (analog) */
signed long StatusID;
struct MpFileInfoType Info;
/* VAR (analog) */
struct MpComInternalDataType Internal;
/* VAR_INPUT (digital) */
plcbit Enable;
plcbit ErrorReset;
/* VAR_OUTPUT (digital) */
plcbit Active;
plcbit Error;
} MpFileManagerUI_typ;
typedef struct MpFileManagerConfig
{
/* VAR_INPUT (analog) */
struct MpComIdentType* MpLink;
struct MpFileManagerConfigType* Configuration;
/* VAR_OUTPUT (analog) */
signed long StatusID;
struct MpFileInfoType Info;
/* VAR (analog) */
struct MpComInternalDataType Internal;
/* VAR_INPUT (digital) */
plcbit Enable;
plcbit ErrorReset;
plcbit Load;
plcbit Save;
/* VAR_OUTPUT (digital) */
plcbit Active;
plcbit Error;
plcbit CommandBusy;
plcbit CommandDone;
} MpFileManagerConfig_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void MpFileManagerUI(struct MpFileManagerUI* inst);
_BUR_PUBLIC void MpFileManagerConfig(struct MpFileManagerConfig* inst);
#ifdef __cplusplus
};
#endif
#endif /* _MPFILE_ */

View File

@@ -1,35 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.5.113 SP?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="Library" Language="Binary" Description="This library contains function interfaces for IEC 61131-3 operator functions. For the most part, these are mathematical and logical functions.">operator</Object>
<Object Type="Library" Language="Binary" Description="This library contains runtime functions for IEC tasks.">runtime</Object>
<Object Type="Library" Language="Binary" Description="The AsTime Library supports DATE_AND_TIME and TIME data types.">astime</Object>
<Object Type="Library" Language="Binary" Description="This library contains function interfaces for IEC 61131-3 conversion functions.">AsIecCon</Object>
<Object Type="Library" Language="Binary" Description="The AsSafety library provides function blocks for the safety system.">AsSafety</Object>
<Object Type="Library" Language="Binary" Description="The FileIO library provides function blocks for file handling.">FileIO</Object>
<Object Type="Library" Language="Binary" Description="This library contains standard function blocks and functions for IEC 61131-3.">standard</Object>
<Object Type="Library" Language="Binary" Description="The AsARCfg library supports reading and writing Automation Runtime configurations.">AsARCfg</Object>
<Object Type="Library" Language="Binary" Description="This library provides read and write access to non-cyclic I/O data points.">AsIOAcc</Object>
<Object Type="Library" Language="Binary" Description="The SYS_LIB library contains functions for memory management and operating system manipulation as well as hardware-specific functions.">sys_lib</Object>
<Object Type="Library" Language="Binary" Description="This library contains functionality to execute traces (to sample numeric values periodically for a defined time-span)">CoTrace</Object>
<Object Type="Library" Language="Binary" Description="The DataObj library can be used to dynamically create, dynamically delete and copy data objects, etc. ">DataObj</Object>
<Object Type="Library" Language="Binary" Description="The FileIO library provides function blocks for file handling.">FileIO</Object>
<Object Type="Library" Language="Binary" Description="This library contains function interfaces for IEC 61131-3 operator functions. For the most part, these are mathematical and logical functions.">operator</Object>
<Object Type="Library" Language="Binary" Description="The DVFrame library and the frame driver can be used to exchange data with external devices.">dvframe</Object>
<Object Type="Library" Language="Binary" Description="This library contains standard function blocks and functions for IEC 61131-3.">standard</Object>
<Object Type="Library" Language="Binary" Description="The SYS_LIB library contains functions for memory management and operating system manipulation as well as hardware-specific functions.">sys_lib</Object>
<Object Type="Library" Language="Binary" Description="This library contains runtime functions for IEC tasks.">runtime</Object>
<Object Type="Library" Language="Binary" Description="The Visapi library provides support to access and control visualizations at runtime.">visapi</Object>
<Object Type="Library" Language="Binary" Description="The VcLib provides supplemental functions to the Visapi library. ">vclib</Object>
<Object Type="Library" Language="Binary" Description="The AsArSdm library supports the System Diagnostics Manager">AsArSdm</Object>
<Object Type="Library" Language="Binary" Description="The AsBrStr Library contains FBKs for memory and character string handling.">AsBrStr</Object>
<Object Type="Library" Language="Binary" Description="The AsBrWStr library allows 8-bit character strings to be implemented for 16-bit WC (AsBrWStr) strings.">AsBrWStr</Object>
<Object Type="Library" Language="Binary" Description="The AsArSdm library supports the System Diagnostics Manager">AsArSdm</Object>
<Object Type="Library" Language="Binary" Description="The VcLib provides supplemental functions to the Visapi library. ">vclib</Object>
<Object Type="Library" Language="Binary" Description="The AsMem library makes it possible to manage memory blocks located in large memory areas (memory partitions).">AsMem</Object>
<Object Type="Library" Language="Binary" Description="This mechatronics library contains different system datatypes and general error numbers.">MTTypes</Object>
<Object Type="Library" Language="Binary" Description="This library contains function blocks to handle USB devices on the target.">AsUSB</Object>
<Object Type="Library" Language="Binary" Description="The DVFrame library and the frame driver can be used to exchange data with external devices.">dvframe</Object>
<Object Type="Library" Language="Binary" Description="This mechatronics library contains basic control function blocks.">MTBasics</Object>
<Object Type="Library" Language="Binary" Description="The AsMem library makes it possible to manage memory blocks located in large memory areas (memory partitions).">AsMem</Object>
<Object Type="Library" Language="Binary" Description="This library contains function interfaces for IEC 61131-3 conversion functions.">AsIecCon</Object>
<Object Type="Library" Language="Binary" Description="The AsSafety library provides function blocks for the safety system.">AsSafety</Object>
<Object Type="Library" Language="Binary" Description="The AsARCfg library supports reading and writing Automation Runtime configurations.">AsARCfg</Object>
<Object Type="Library" Language="Binary" Description="This library contains FBKs for exchanging data (data stream) via stream sockets (TCP).">AsTCP</Object>
<Object Type="Library" Language="Binary" Description="This library provides read and write access to non-cyclic I/O data points.">AsIOAcc</Object>
<Object Type="Library" Language="Binary" Description="The AsZip library offers compressing archive-support">AsZip</Object>
<Object Type="Library" Language="Binary" Description="This mechatronics library contains different system datatypes and general error numbers.">MTTypes</Object>
<Object Type="Library" Language="Binary" Description="This mechatronics library contains basic control function blocks.">MTBasics</Object>
<Object Type="Library" Language="Binary" Description="Web access">MpWebXs</Object>
<Object Type="Library" Language="Binary" Description="Core library for mapp components">MpBase</Object>
<Object Type="Library" Language="Binary" Description="Centralized event audit trail">MpAudit</Object>
<Object Type="Library" Language="Binary" Description="User management based on user role system">MpUserX</Object>
<Object Type="Library" Language="Binary" Description="Advanced alarm management">MpAlarmX</Object>
<Object Type="Library" Language="Binary" Description="mapp components diagnosis,hierarchy and unit handling">MpCom</Object>
<Object Type="Library" Language="Binary" Description="The Visapi library provides support to access and control visualizations at runtime.">visapi</Object>
<Object Type="Library" Language="Binary" Description="[mapp Motion] Robotics library">MpRobotics</Object>
<Object Type="Library" Language="Binary" Description="[mapp Motion] CNC machines library">MpCnc</Object>
<Object Type="Library" Language="Binary" Description="[mapp Motion] Axis library">MpAxis</Object>
@@ -39,7 +41,6 @@
<Object Type="Library" Language="Binary" Description="[mapp Motion] PLCopen axis library">McAxis</Object>
<Object Type="Library" Language="Binary" Description="[mapp Motion] ACOPOS axis library">McAcpAx</Object>
<Object Type="Library" Language="Binary" Description="[mapp Motion] Base library">McBase</Object>
<Object Type="Library" Language="Binary" Description="This library contains functionality to execute traces (to sample numeric values periodically for a defined time-span)">CoTrace</Object>
<Object Type="Library" Language="Binary" Description="This library contains FBKs for exchanging data (data stream) via stream sockets (TCP).">AsTCP</Object>
<Object Type="Library" Language="Binary" Description="File explorer for B+R file devices">MpFile</Object>
</Objects>
</Package>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsTime Library supports DATE_AND_TIME and TIME data types.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The AsTime Library supports DATE_AND_TIME and TIME data types." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>astime.fun</File>
<File>astime.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The DVFrame library and the frame driver can be used to exchange data with external devices.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The DVFrame library and the frame driver can be used to exchange data with external devices." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>dvframe.fun</File>
<File>dvframe.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="This library contains standard function blocks and functions for IEC 61131-3.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="This library contains standard function blocks and functions for IEC 61131-3." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>standard.fun</File>
<File>standard.typ</File>
<File>standard.var</File>
</Files>
</Library>
</Library>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The SYS_LIB library contains functions for memory management and operating system manipulation as well as hardware-specific functions.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The SYS_LIB library contains functions for memory management and operating system manipulation as well as hardware-specific functions." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>sys_lib.fun</File>
<File>sys_lib.typ</File>
@@ -9,4 +9,4 @@
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>
</Library>

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The VcLib provides supplemental functions to the Visapi library. ">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The VcLib provides supplemental functions to the Visapi library. " xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>VCLIB.typ</File>
<File>VCLIB.fun</File>
<File>VCLIB.var</File>
</Files>
<Dependencies/>
</Library>
</Library>

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The Visapi library provides support to access and control visualizations at runtime.">
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Description="The Visapi library provides support to access and control visualizations at runtime." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>Visapi.typ</File>
<File>Visapi.fun</File>
<File>Visapi.var</File>
</Files>
<Dependencies/>
</Library>
</Library>

View File

@@ -1,15 +1,15 @@
ACTION DoInitAxLimits:
//Grenzwerte Achsbewegungen
Parameter.LimitAxis_X.lrLowerLimit := 1.0;
Parameter.LimitAxis_X.lrUpperLimit := 479.0;
Parameter.LimitAxis_X.lrUpperLimit := 243.0;
Parameter.LimitAxis_Y.lrLowerLimit := 1.0;
Parameter.LimitAxis_Y.lrUpperLimit := 899.0;
Parameter.LimitAxis_Y.lrUpperLimit := 694.0;
Parameter.LimitAxis_Z.lrLowerLimit := 1.0;
Parameter.LimitAxis_Z.lrUpperLimit := 234.0;
Parameter.LimitAxis_A.lrLowerLimit := -45.0;
Parameter.LimitAxis_A.lrUpperLimit := 45.0;
Parameter.LimitAxis_B.lrLowerLimit := -40.0;
Parameter.LimitAxis_B.lrUpperLimit := 50.0;
Parameter.LimitAxis_Z.lrUpperLimit := 233.9;
Parameter.LimitAxis_A.lrLowerLimit := -20.0;
Parameter.LimitAxis_A.lrUpperLimit := 20.0;
Parameter.LimitAxis_B.lrLowerLimit := 0.0;
Parameter.LimitAxis_B.lrUpperLimit := 0.0;
Parameter.LimitAxis_Shuttle.lrLowerLimit := 1.0;
Parameter.LimitAxis_Shuttle.lrUpperLimit := 235.0;
END_ACTION
@@ -101,7 +101,7 @@ ACTION DoCalibrateParameterA:
MpFUB.InitHome_A.HomingParameters.Acceleration := 1000; // [<EFBFBD>/s2];
MpFUB.InitHome_A.HomingParameters.StartVelocity := 10; // [<EFBFBD>/s]
MpFUB.InitHome_A.HomingParameters.HomingVelocity := 10; // [<EFBFBD>/s]
MpFUB.InitHome_A.HomingParameters.Position := 45; // [<EFBFBD>]
MpFUB.InitHome_A.HomingParameters.Position := 20; // [<EFBFBD>]
MpFUB.InitHome_A.HomingParameters.BlockDetectionPositionError := 0.05; // [mm]
MpFUB.InitHome_A.HomingParameters.PositionErrorStopLimit := 0.5; // [mm]
END_ACTION
@@ -384,12 +384,55 @@ END_ACTION
ACTION DoAlarms:
//Alarme erzeugen bzw. r<EFBFBD>cksetzen
//Kartusche nicht angetastet
//Prozessdaten fehlen (Scan)
IF (AlarmIDs.udPartInfoMissing > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udPartInfoMissing);
AlarmIDs.udPartInfoMissing := 0;
IF (lMachine.enMode = enMACH_AUTOMATIC) AND NOT Parameter.bTestRun THEN
IF NOT gbInWaterLvlMin AND (AlarmIDs.udWaterLvlMin = 0) THEN
AlarmIDs.udWaterLvlMin := MpAlarmXSet (gMpAlarmXCore, 'WaterLvlMin');
END_IF
IF NOT gbInWaterPrePress3Bar AND (AlarmIDs.udWaterPrePress3Bar = 0) THEN
AlarmIDs.udWaterPrePress3Bar := MpAlarmXSet (gMpAlarmXCore, 'WaterPrePress3Bar');
END_IF
IF NOT gbInWaterPressMin AND (AlarmIDs.udWaterPressMin = 0) THEN
AlarmIDs.udWaterPressMin := MpAlarmXSet (gMpAlarmXCore, 'WaterPressMin');
END_IF
END_IF
//Kleberdaten fehlen
IF (gbInWaterLvlMin OR Parameter.bTestRun) AND (AlarmIDs.udWaterLvlMin > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udWaterLvlMin);
AlarmIDs.udWaterLvlMin := 0;
END_IF
IF (gbInWaterPrePress3Bar OR Parameter.bTestRun) AND (AlarmIDs.udWaterPrePress3Bar > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udWaterPrePress3Bar);
AlarmIDs.udWaterPrePress3Bar := 0;
END_IF
IF (gbInWaterPressMin OR Parameter.bTestRun) AND (AlarmIDs.udWaterPressMin > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udWaterPressMin);
AlarmIDs.udWaterPressMin := 0;
END_IF
//Zylinder<EFBFBD>berwachung Einlegetor
FUBs.Cyl_Frontdoor.bInOutputCylinderBw := NOT gbSOuCloseFrontgate;
FUBs.Cyl_Frontdoor.bInOutputCylinderFw := gbSOuCloseFrontgate;
FUBs.Cyl_Frontdoor.bInSensorCylinderBw := gbInFrontGateOpen;
FUBs.Cyl_Frontdoor.bInSensorCylinderFw := gbSInFrontGateOk;
FUBs.Cyl_Frontdoor.tInCylinderBw := t#5s;
FUBs.Cyl_Frontdoor.tInCylinderFw := t#5s;
FUBs.Cyl_Frontdoor ();
IF FUBs.Cyl_Frontdoor.bOuErrorCylinderBw THEN
IF (AlarmIDs.udFrontGateNotOpen = 0) THEN
AlarmIDs.udFrontGateNotOpen := MpAlarmXSet (gMpAlarmXCore, 'FrontGateNotOpen');
END_IF
ELSIF NOT FUBs.Cyl_Frontdoor.bOuErrorCylinderBw AND (AlarmIDs.udFrontGateNotOpen > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udFrontGateNotOpen);
AlarmIDs.udFrontGateNotOpen := 0;
END_IF
IF FUBs.Cyl_Frontdoor.bOuErrorCylinderFw THEN
IF (AlarmIDs.udFrontGateNotClosed = 0) THEN
AlarmIDs.udFrontGateNotClosed := MpAlarmXSet (gMpAlarmXCore, 'FrontGateNotClosed');
END_IF
ELSIF NOT FUBs.Cyl_Frontdoor.bOuErrorCylinderFw AND (AlarmIDs.udFrontGateNotClosed > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udFrontGateNotClosed);
AlarmIDs.udFrontGateNotClosed := 0;
END_IF
END_ACTION

View File

@@ -14,11 +14,13 @@ PROGRAM _CYCLIC
MpFUB.ProcessParID_AcpAx_Shuttle.Execute := TRUE;
strOperator := 'Bemusterung';
strMachinename := 'Wasserstrahl';
pParamPositions.lrHomePosX := 5.0;
pParamPositions.lrHomePosY := 5.0;
pParamPositions.lrHomePosZ := 5.0;
pParamPositions.lrHomePosX := 240.0; //wg Shuttle
pParamPositions.lrHomePosY := 50.0; //Damit frei gedreht werden kann
pParamPositions.lrHomePosZ := 10.0;
pParamPositions.lrHomePosA := 0.0; //<EFBFBD>
pParamPositions.lrHomePosB := 0.0; //<EFBFBD>
pParamPositions.lrHomePosShuttle := 234.0;
pParamPositions.lrWorkPosShuttle := 5.0;
END_IF
@@ -43,7 +45,7 @@ PROGRAM _CYCLIC
//Sicherheitszonen - Stati
States.bSafetyOk := gbSPLCInEstopOk;
States.bSafetyDoorsOk := gbSPLCInDoorsOk;
States.bSafetyDoorsOk := gbSPLCInDoorsBackOk AND gbSPLCInDoorsFrontOk;
States.bSafetyInfeedOk := gbSPLCInAxisEnabledOk;
FUBs.TON_SafetyInfeedOk.IN := States.bSafetyInfeedOk;
FUBs.TON_SafetyInfeedOk.PT := t#900ms;
@@ -57,15 +59,15 @@ PROGRAM _CYCLIC
States.PosState.bHomeX := MpFUB.AxBasic_X.IsHomed AND FC_InTolerance (MpFUB.AxBasic_X.Position, pParamPositions.lrHomePosX, -0.1, 0.1);
States.PosState.bHomeY := MpFUB.AxBasic_Y.IsHomed AND FC_InTolerance (MpFUB.AxBasic_Y.Position, pParamPositions.lrHomePosY, -0.1, 0.1);
States.PosState.bHomeZ := MpFUB.AxBasic_Z.IsHomed AND FC_InTolerance (MpFUB.AxBasic_Z.Position, pParamPositions.lrHomePosZ, -0.1, 0.1);
States.PosState.bHomeA := MpFUB.AxBasic_A.IsHomed AND FC_InTolerance (MpFUB.AxBasic_A.Position, pParamPositions.lrHomePosA, -0.1, 0.1);
States.PosState.bHomeB := MpFUB.AxBasic_B.IsHomed AND FC_InTolerance (MpFUB.AxBasic_B.Position, pParamPositions.lrHomePosB, -0.1, 0.1);
States.PosState.bHomeA := MpFUB.AxBasic_A.IsHomed AND FC_InTolerance (MpFUB.AxBasic_A.Position, pParamPositions.lrHomePosA, -0.1, 0.1);
States.PosState.bHomeB := MpFUB.AxBasic_B.IsHomed AND (FC_InTolerance (MpFUB.AxBasic_B.Position, pParamPositions.lrHomePosB, -0.1, 0.1)
OR FC_InTolerance (MpFUB.AxBasic_B.Position, 360.0 , -0.1, 0.1));
States.PosState.bHomeShuttle := MpFUB.AxBasic_Shuttle.IsHomed AND FC_InTolerance (MpFUB.AxBasic_Shuttle.Position, pParamPositions.lrHomePosShuttle, -0.1, 0.1);
States.PosState.bWorkposShuttle := MpFUB.AxBasic_Shuttle.IsHomed AND FC_InTolerance (MpFUB.AxBasic_Shuttle.Position, pParamPositions.lrWorkPosShuttle, -0.1, 0.1);
//Ist Positionen Zylinder
States.CylinderPosState.bPressPosUp := Valves.bPressUp AND NOT Valves.bPressDown;
//Mapp Bausteine Versorgen
States.CylinderPosState.bFrontGateOpen := NOT Valves.bCloseGate AND gbInFrontGateOpen;
States.CylinderPosState.bFrontGateClosed := Valves.bCloseGate AND gbSInFrontGateOk;
//Zeiten
Times.diSteptime := gdiSystemTime - TimesLatch.diSteptime;
@@ -85,8 +87,9 @@ PROGRAM _CYCLIC
//Grundstellungen
lMachine.bMachineHOME := States.PosState.bHomeX AND States.PosState.bHomeY AND States.PosState.bHomeZ
AND States.CylinderPosState.bPressPosUp;
lMachine.bMachineHOME := States.PosState.bHomeX AND States.PosState.bHomeY AND States.PosState.bHomeZ AND
States.PosState.bHomeA AND States.PosState.bHomeB AND States.PosState.bHomeShuttle AND
States.CylinderPosState.bFrontGateOpen;
IF lMachine.bMachineHOME THEN
lMachine.bRequestHoming := FALSE;
END_IF
@@ -207,13 +210,18 @@ PROGRAM _CYCLIC
//Bewegungsbedingungen
//==========================================================
//Zustellbewegung
MoveConditions.bAxisXMove := TRUE;// AND States.CylinderPosState.bPressPosUp; //FixMe Z-Pos
MoveConditions.bAxisYMove := TRUE; //FixMe Z-Pos
MoveConditions.bAxisZMove := TRUE;
MoveConditions.bAxisXMovePos := (MpFUB.AxBasic_Z.Position < 160.0);
MoveConditions.bAxisXMoveNeg := ((MpFUB.AxBasic_Shuttle.Position + 10) < MpFUB.AxBasic_X.Position) AND (MpFUB.AxBasic_Z.Position < 160.0);
MoveConditions.bAxisYMove := MpFUB.AxBasic_Z.Position < 160.0;
MoveConditions.bAxisZMoveNeg := TRUE;
MoveConditions.bAxisZMovePos := TRUE; //((MpFUB.AxBasic_Shuttle.Position - MpFUB.AxBasic_X.Position) > 125);
MoveConditions.bAxisAMove := TRUE;
MoveConditions.bAxisBMove := TRUE;
MoveConditions.bAxisShuttleMove := TRUE;
MoveConditions.bAxisShuttleMoveNeg := MpFUB.AxBasic_Z.Position < 160.0;
MoveConditions.bAxisShuttleMovePos := ((MpFUB.AxBasic_Shuttle.Position + 5) < MpFUB.AxBasic_X.Position) AND
(MpFUB.AxBasic_Z.Position < 160.0);
MoveConditions.bCloseFrontGate := gbSInBumperGateOk AND NOT gbSPLCInErrorBumper;
//Letzten Zyklus anfordern (deaktiviert)
@@ -256,7 +264,7 @@ PROGRAM _CYCLIC
//Stati
//Einzelachsmodus / Einrichtbetrieb
States.bSingleAxMode := ((gVisuCtrl.enCurrentPage = P10_MAIN) AND (gVisuCtrl.MainPage.usSetLayer = LAYER_MAINPAGE_SETUPMODE)
AND lMachine.bSetupMode AND (lMachine.enMode = enMACH_JOG));
AND (lMachine.enMode = enMACH_JOG));
@@ -278,6 +286,10 @@ PROGRAM _CYCLIC
MpData.AxPar_Y.Jog.LimitPosition.LastPosition := Parameter.LimitAxis_Y.lrUpperLimit;
MpData.AxPar_Z.Jog.LimitPosition.FirstPosition := Parameter.LimitAxis_Z.lrLowerLimit;
MpData.AxPar_Z.Jog.LimitPosition.LastPosition := Parameter.LimitAxis_Z.lrUpperLimit;
MpData.AxPar_A.Jog.LimitPosition.FirstPosition := Parameter.LimitAxis_A.lrLowerLimit;
MpData.AxPar_A.Jog.LimitPosition.LastPosition := Parameter.LimitAxis_A.lrUpperLimit;
MpData.AxPar_Shuttle.Jog.LimitPosition.FirstPosition := Parameter.LimitAxis_Shuttle.lrLowerLimit;
MpData.AxPar_Shuttle.Jog.LimitPosition.LastPosition := Parameter.LimitAxis_Shuttle.lrUpperLimit;
//Geschwindigkeiten
MpData.AxPar_X.Jog.Velocity := Parameter.rSpeedJog;
@@ -661,6 +673,10 @@ PROGRAM _CYCLIC
//Achsen direct Referenzieren (nur f<EFBFBD>r Einrichten)
VCButtons.AxisHomeDirect.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
VCButtons.AxisBHomeDirect.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
VCButtons.AxisShuttleHomeDirect.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
IF EDGEPOS (VCButtons.AxisHomeDirect.bCommand) THEN
CASE States.enSelectedAxis OF
0:
@@ -700,6 +716,9 @@ PROGRAM _CYCLIC
MpAuditCustomEvent (gMpAuditTrail, "DirectHomed", "Shuttle", "");
END_IF
VCButtons.AxisHome.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
VCButtons.AxisBHome.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
VCButtons.AxisShuttleHome.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
//Achsen Referenzieren mit Parametrierten Daten
IF VCButtons.AxisHome.bCommand THEN
DoInitAxisparameter;
@@ -743,17 +762,18 @@ PROGRAM _CYCLIC
IF States.bSingleAxMode THEN
bAxisReadyForCommand := MpFUB.AxBasic_X.Active AND MpFUB.AxBasic_X.PowerOn; // AND NOT MpFUB.AxBasic_X.CommandBusy;
END_IF
VCButtons.AxisJogBw.usStatus.1 := NOT MoveConditions.bAxisXMove OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_X.IsHomed;
VCButtons.AxisJogBw.usStatus.1 := NOT MoveConditions.bAxisXMoveNeg OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_X.IsHomed;
//OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisJogFw.usStatus.1 := NOT MoveConditions.bAxisXMove OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_X.IsHomed;
VCButtons.AxisJogFw.usStatus.1 := NOT MoveConditions.bAxisXMovePos OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_X.IsHomed;
//OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisTune.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisTune.usStatus.1 := NOT MoveConditions.bAxisXMove OR (MpFUB.AxBasic_X.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisTune.usStatus.1 := NOT MoveConditions.bAxisXMoveNeg OR NOT MoveConditions.bAxisXMoveNeg OR (MpFUB.AxBasic_X.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisTunePos.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisTunePos.usStatus.1 := NOT MoveConditions.bAxisXMove OR (MpFUB.AxBasic_X.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisTunePos.usStatus.1 := NOT MoveConditions.bAxisXMoveNeg OR NOT MoveConditions.bAxisXMoveNeg OR (MpFUB.AxBasic_X.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisCalibrate.usStatus.0 := NOT States.bSingleAxMode;
VCButtons.AxisCalibrate.usStatus.1 := NOT MoveConditions.bAxisXMove OR NOT bAxisReadyForCommand
OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisCalibrate.usStatus.1 := NOT MoveConditions.bAxisXMoveNeg OR NOT MoveConditions.bAxisXMoveNeg OR NOT bAxisReadyForCommand
OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisBrake.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
IF VCButtons.AxisBrake.bCompletion THEN
IF VCButtons.AxisBrake.bCommand THEN
MpFUB.BrakeOperation_X.Command := mcBRAKE_OPEN;
@@ -778,6 +798,7 @@ PROGRAM _CYCLIC
VCButtons.AxisCalibrate.usStatus.0 := NOT States.bSingleAxMode;
VCButtons.AxisCalibrate.usStatus.1 := NOT MoveConditions.bAxisYMove OR NOT bAxisReadyForCommand
OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisBrake.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
IF VCButtons.AxisBrake.bCompletion THEN
States.bExtBrakeY := VCButtons.AxisBrake.bCommand;
VCButtons.AxisBrake.bCompletion := FALSE;
@@ -788,15 +809,16 @@ PROGRAM _CYCLIC
IF States.bSingleAxMode THEN
bAxisReadyForCommand := MpFUB.AxBasic_Z.Active AND MpFUB.AxBasic_Z.PowerOn; // AND NOT MpFUB.AxBasic_Z.CommandBusy;
END_IF
VCButtons.AxisJogBw.usStatus.1 := NOT MoveConditions.bAxisZMove OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Z.IsHomed;
VCButtons.AxisJogFw.usStatus.1 := NOT MoveConditions.bAxisZMove OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Z.IsHomed;
VCButtons.AxisJogBw.usStatus.1 := NOT MoveConditions.bAxisZMoveNeg OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Z.IsHomed;
VCButtons.AxisJogFw.usStatus.1 := NOT MoveConditions.bAxisZMovePos OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Z.IsHomed;
VCButtons.AxisTune.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisTune.usStatus.1 := NOT MoveConditions.bAxisZMove OR (MpFUB.AxBasic_Z.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisTune.usStatus.1 := NOT MoveConditions.bAxisZMoveNeg OR NOT MoveConditions.bAxisZMovePos OR (MpFUB.AxBasic_Z.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisTunePos.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisTunePos.usStatus.1 := NOT MoveConditions.bAxisZMove OR (MpFUB.AxBasic_Z.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisTunePos.usStatus.1 := NOT MoveConditions.bAxisZMoveNeg OR NOT MoveConditions.bAxisZMovePos OR (MpFUB.AxBasic_Z.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisCalibrate.usStatus.0 := NOT States.bSingleAxMode;
VCButtons.AxisCalibrate.usStatus.1 := NOT MoveConditions.bAxisZMove OR NOT bAxisReadyForCommand
VCButtons.AxisCalibrate.usStatus.1 := NOT MoveConditions.bAxisZMoveNeg OR NOT MoveConditions.bAxisZMovePos OR NOT bAxisReadyForCommand
OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisBrake.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
3:
IF States.bSingleAxMode THEN
bAxisReadyForCommand := MpFUB.AxBasic_A.Active AND MpFUB.AxBasic_A.PowerOn; // AND NOT MpFUB.AxBasic_A.CommandBusy;
@@ -810,6 +832,7 @@ PROGRAM _CYCLIC
VCButtons.AxisCalibrate.usStatus.0 := NOT States.bSingleAxMode;
VCButtons.AxisCalibrate.usStatus.1 := NOT MoveConditions.bAxisAMove OR NOT bAxisReadyForCommand
OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisBrake.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
IF VCButtons.AxisBrake.bCompletion THEN
States.bExtBrakeA := VCButtons.AxisBrake.bCommand;
VCButtons.AxisBrake.bCompletion := FALSE;
@@ -818,16 +841,17 @@ PROGRAM _CYCLIC
END_CASE
bAxisReadyForCommand := MpFUB.AxBasic_B.Active AND MpFUB.AxBasic_B.PowerOn; // AND NOT MpFUB.AxBasic_A.CommandBusy;
VCButtons.AxisBJogBw.usStatus.1 := NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_B.IsHomed
OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisBJogFw.usStatus.1 := NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_B.IsHomed
OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisBJogBw.usStatus.1 := NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_B.IsHomed;
//OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisBJogFw.usStatus.1 := NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_B.IsHomed;
//OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisBTune.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisBTune.usStatus.1 := (MpFUB.AxBasic_B.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisBTunePos.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisBTunePos.usStatus.1 := (MpFUB.AxBasic_B.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisBCalibrate.usStatus.0 := NOT States.bSingleAxMode;
VCButtons.AxisBCalibrate.usStatus.1 := NOT bAxisReadyForCommand OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisBBrake.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
IF VCButtons.AxisBrake.bCompletion THEN
IF VCButtons.AxisBrake.bCommand THEN
MpFUB.BrakeOperation_B.Command := mcBRAKE_OPEN;
@@ -844,16 +868,17 @@ PROGRAM _CYCLIC
bAxisReadyForCommand := MpFUB.AxBasic_Shuttle.Active AND MpFUB.AxBasic_Shuttle.PowerOn; // AND NOT MpFUB.AxBasic_A.CommandBusy;
VCButtons.AxisShuttleJogBw.usStatus.1 := NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Shuttle.IsHomed
OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisShuttleJogFw.usStatus.1 := NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Shuttle.IsHomed
OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisShuttleJogBw.usStatus.1 := NOT MoveConditions.bAxisShuttleMoveNeg OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Shuttle.IsHomed;
//OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisShuttleJogFw.usStatus.1 := NOT MoveConditions.bAxisShuttleMovePos OR NOT bAxisReadyForCommand OR NOT MpFUB.AxBasic_Shuttle.IsHomed;
//OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.AxisShuttleTune.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisShuttleTune.usStatus.1 := (MpFUB.AxBasic_Shuttle.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisShuttleTunePos.usStatus.0 := NOT States.bSingleAxTuningMode;
VCButtons.AxisShuttleTunePos.usStatus.1 := (MpFUB.AxBasic_Shuttle.Info.PLCopenState <> mcAXIS_DISABLED);
VCButtons.AxisShuttleCalibrate.usStatus.0 := NOT States.bSingleAxMode;
VCButtons.AxisShuttleCalibrate.usStatus.1 := NOT bAxisReadyForCommand OR (gUserRights.Right6_Setup < mpUSERX_ACCESS_ACTUATE);
VCButtons.AxisShuttleBrake.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL);
IF VCButtons.AxisShuttleBrake.bCompletion THEN
States.bExtBrakeShuttle := VCButtons.AxisShuttleBrake.bCommand;
@@ -862,25 +887,22 @@ PROGRAM _CYCLIC
VCButtons.AxisShuttleBrake.bCommand := States.bExtBrakeShuttle;
//Ventile
VCButtons.OpenGripper.usStatus.0 := States.CylinderPosState.bPressPosUp;
VCButtons.OpenGripper.usStatus.1 := NOT States.bSafetyInfeedOkDelayed
OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
VCButtons.CloseGripper.usStatus.0 := NOT States.CylinderPosState.bPressPosUp;
VCButtons.CloseGripper.usStatus.1 := NOT States.bSafetyInfeedOkDelayed
OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL);
IF VCButtons.OpenGripper.bCommand THEN
Valves.bPressDown := FALSE;
Valves.bPressUp := TRUE;
ELSIF VCButtons.CloseGripper.bCommand THEN //AND MoveConditions.bPressDown THEN
Valves.bPressDown := TRUE;
Valves.bPressUp := FALSE;
VCButtons.OpenGate.usStatus.0 := States.CylinderPosState.bFrontGateOpen;
VCButtons.OpenGate.usStatus.1 := (gUserRights.Right4_Jog < mpUSERX_ACCESS_ACTUATE);
VCButtons.CloseGate.usStatus.0 := States.CylinderPosState.bFrontGateClosed;
VCButtons.CloseGate.usStatus.1 := (gUserRights.Right4_Jog < mpUSERX_ACCESS_ACTUATE);
IF VCButtons.OpenGate.bCommand THEN
Valves.bCloseGate := FALSE;
ELSIF VCButtons.CloseGate.bCommand THEN
Valves.bCloseGate := TRUE;
END_IF
//HD Pumpe
Valves.bHPValveOn := VCButtons.HPOn.bCommand;
IF NOT gbSPLCInAxisEnabledOk THEN
VCButtons.HPOn.usStatus.1 := NOT gbSPLCInDoorsFrontOk OR NOT gbSPLCInDoorsBackOk OR NOT gbSInFrontGateOk;
IF NOT gbSPLCInDoorsBackOk OR NOT gbSPLCInDoorsBackOk OR NOT gbSInFrontGateOk THEN
VCButtons.HPOn.bCommand := FALSE;
END_IF
Valves.bHPValveOn := VCButtons.HPOn.bCommand;
@@ -891,24 +913,27 @@ PROGRAM _CYCLIC
VCButtons.AutoStartToolChange.usStatus.0 := (enStepAuto <> enAutoStep_WAIT_START);
VCButtons.AutoStartHome.usStatus.0 := (enStepAuto <> enAutoStep_HOME_WAIT_START);
VCButtons.AutoStartHome.usStatus.1 := NOT States.bSafetyInfeedOk;
VCButtons.AutoStartHome.usStatus.1 := NOT States.bSafetyDoorsOk;
VCButtons.AutoStartCycle.usStatus.0 := (enStepAuto <> enAutoStep_WAIT_START);
VCButtons.AutoStartCycle.usStatus.0 := (enStepAuto <> enAutoStep_WAIT_START);
VCButtons.AutoStartCycle.usStatus.1 := FALSE AND NOT States.bSafetyInfeedOk;
VCButtons.AutoStopCycle.usStatus.0 := (enStepAuto <> enAutoStep_CNC_FINISHED);
VCButtons.AutoRequestHome.usStatus.0 := (enStepAuto > enAutoStep_WAIT_START);
//Eingabefelder
//Verbergen wenn nicht definiert
VCStatus.usDtropDownCncPrg.1 := (enStepAuto > enAutoStep_WAIT_START);
//Fehler erzeugen allgemein
IF FALSE AND (AlarmIDs.udCartridgeClosed = 0) AND States.bSafetyDoorsOk THEN
AlarmIDs.udCartridgeClosed := MpAlarmXSet (gMpAlarmXCore, 'CartrigeHolderOpen');
ELSIF FALSE AND (AlarmIDs.udNoCartrige = 0) AND States.bSafetyDoorsOk THEN
AlarmIDs.udNoCartrige := MpAlarmXSet (gMpAlarmXCore, 'NoCartrige');
END_IF
//IF FALSE AND (AlarmIDs.udCartridgeClosed = 0) AND States.bSafetyDoorsOk THEN
// AlarmIDs.udCartridgeClosed := MpAlarmXSet (gMpAlarmXCore, 'CartrigeHolderOpen');
//ELSIF FALSE AND (AlarmIDs.udNoCartrige = 0) AND States.bSafetyDoorsOk THEN
// AlarmIDs.udNoCartrige := MpAlarmXSet (gMpAlarmXCore, 'NoCartrige');
//END_IF
// <EFBFBD>berwachungen w<EFBFBD>hrend Automatik
//--------------------------------------------------------------------------------------------
@@ -926,10 +951,10 @@ PROGRAM _CYCLIC
//Notaus w<EFBFBD>hrend Automatik (in Schritten wo keine Unterbrechung gew<EFBFBD>nscht ist)
//--------------------------------------------------------------------------------------------
IF NOT States.bSafetyInfeedOk AND (enStepAuto > enAutoStep_WAIT_START) THEN
IF NOT States.bSafetyInfeedOk AND (enStepAuto > enAutoStep_WAIT_DOOR_CLOSED) AND (enStepAuto < enAutoStep_WAIT_DOOR_OPEN) THEN
//Pr<EFBFBD>fen ob restart erlaubt
DoResetAxCommands;
IF (enStepAuto >= enAutoStep_CNC_ACTIVE) AND (enAutoStep_WAIT_START < enAutoStep_CNC_FINISHED) THEN
IF (enStepAuto >= enAutoStep_CNC_ACTIVE) AND (enStepAuto < enAutoStep_CNC_FINISHED) THEN
//FixMe Error
enStepAuto := enAutoStep_INIT;
enStepAutoRestartPoint := enStepAuto;
@@ -940,9 +965,10 @@ PROGRAM _CYCLIC
END_IF
END_IF
IF NOT States.bSafetyInfeedOk AND (enStepAuto < enAutoStep_WAIT_RESTART) THEN
IF NOT States.bSafetyInfeedOk THEN
DoResetAxCommands;
enStepAuto := enAutoStep_INIT;
// enStepAuto := enAutoStep_INIT;
END_IF
//Automatik Schrittkette Kartusche
@@ -954,11 +980,11 @@ PROGRAM _CYCLIC
//Initial Schritt
//---------------------------
enAutoStep_INIT:
bTransitionCondition := States.bSafetyInfeedOkDelayed AND NOT gCmd1.bReqDoorOpen;
bTransitionCondition := TRUE;
gABBRobot1.Out.bStop := FALSE;
gABBRobot1.Out.bSwitchMotorOff := FALSE;
Valves.bHPValveOn := FALSE;
IF bTransitionCondition THEN //AND lMachine.bMachineHOME THEN
IF bTransitionCondition AND lMachine.bMachineHOME THEN
enStepAuto := enAutoStep_WAIT_START;
TimesLatch.diSteptime := gdiSystemTime;
ELSIF bTransitionCondition THEN
@@ -972,13 +998,39 @@ PROGRAM _CYCLIC
//GS: Warten auf Start
//---------------------------
enAutoStep_HOME_WAIT_START:
bTransitionCondition := EDGEPOS (VCButtons.AutoStartHome.bCommand) AND States.bSafetyInfeedOkDelayed;
bTransitionCondition := (EDGEPOS (gbInStartKey) OR VCButtons.AutoStartHome.bCommand) AND States.bSafetyDoorsOk;
IF bTransitionCondition THEN
enStepAuto := enAutoStep_HOME_WAIT_ZHOME;
enStepAuto := enAutoStep_HOME_WAIT_DOORCLOSED;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Warten bis Tor geschlossen
//---------------------------
enAutoStep_HOME_WAIT_DOORCLOSED:
Valves.bCloseGate := MoveConditions.bCloseFrontGate;
bTransitionCondition := gbSInFrontGateOk AND States.bSafetyInfeedOkDelayed;
IF bTransitionCondition THEN
enStepAuto := enAutoStep_HOME_WAIT_HOMING;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Warten bis Achsen Ref
//---------------------------
enAutoStep_HOME_WAIT_HOMING:
bTransitionCondition := MpFUB.AxBasic_X.IsHomed AND
MpFUB.AxBasic_Y.IsHomed AND
MpFUB.AxBasic_Z.IsHomed AND
MpFUB.AxBasic_A.IsHomed AND
MpFUB.AxBasic_B.IsHomed AND
MpFUB.AxBasic_Shuttle.IsHomed;
IF bTransitionCondition THEN
enStepAuto := enAutoStep_HOME_WAIT_ZHOME;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//GS: Warten bis Z-Achse in GS gefahren
//---------------------------
enAutoStep_HOME_WAIT_ZHOME:
@@ -1060,9 +1112,37 @@ PROGRAM _CYCLIC
IF bTransitionCondition THEN
MpFUB.AxBasic_B.MoveAbsolute := FALSE;
enStepAuto := enAutoStep_INIT;
enStepAuto := enAutoStep_HOME_WAIT_SHUTTLEHOME;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Shuttle in Grundstellung
//---------------------------
enAutoStep_HOME_WAIT_SHUTTLEHOME:
bTransitionCondition := MpFUB.AxBasic_Shuttle.InPosition AND MpFUB.AxBasic_Shuttle.MoveDone AND
NOT MpFUB.AxBasic_Shuttle.CommandBusy AND MpFUB.AxBasic_Shuttle.MoveAbsolute;
MpData.AxPar_Shuttle.Velocity := Parameter.rVelocityAxisLinear; //mm/s
MpData.AxPar_Shuttle.Acceleration := 1000.0; //mm/s2
MpData.AxPar_Shuttle.Deceleration := 1000.0; //mm/s2
MpData.AxPar_Shuttle.Position := pParamPositions.lrHomePosShuttle;
MpFUB.AxBasic_Shuttle.MoveAbsolute := MoveConditions.bAxisShuttleMovePos;
IF bTransitionCondition THEN
MpFUB.AxBasic_Shuttle.MoveAbsolute := FALSE;
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_HOME_WAIT_DOOROPEN;
END_IF
//T<EFBFBD>r <EFBFBD>ffnen
//---------------------------
enAutoStep_HOME_WAIT_DOOROPEN:
Valves.bCloseGate := FALSE;
bTransitionCondition := gbInFrontGateOpen;
IF bTransitionCondition THEN
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_INIT;
END_IF
//Warten auf Start nach Notaus (inaktiv)
@@ -1081,20 +1161,10 @@ PROGRAM _CYCLIC
enAutoStep_WAIT_START:
//Werkzeugwechsel
bTransitionCondition := VCButtons.AutoStartToolChange.bCommand;
IF bTransitionCondition THEN
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_TOOLCH_PRESSPOS_RCHD;
END_IF
//bTransitionCondition := VCButtons.AutoStartToolChange.bCommand;
//Automatik Ablauf EDGEPOS (gPB3.bInKeyStatus)
bTransitionCondition := (FUBs.TOF_Startkey.Q AND EDGEPOS (States.bSafetyInfeedOkDelayed) OR
EDGEPOS (gbInStartKey) AND States.bSafetyInfeedOkDelayed);
bTransitionCondition := EDGEPOS (VCButtons.AutoStartCycle.bCommand);
//Fehler erzeugen Prozessrelevant
bTransitionCondition := EDGEPOS (gbInStartKey) OR EDGEPOS (VCButtons.AutoStartCycle.bCommand);
//Fehler erzeugen Prozessrelevant
IF bTransitionCondition
AND NOT MpAlarmXCheckReaction (gMpAlarmXCore, 'ReactionLockAuto')
@@ -1111,45 +1181,31 @@ PROGRAM _CYCLIC
END_IF
//Werkzeugwechsel Presspositon anfahren
//---------------------------
enAutoStep_TOOLCH_PRESSPOS_RCHD:
bTransitionCondition := MpFUB.AxBasic_X.InPosition AND MpFUB.AxBasic_X.MoveDone AND
NOT MpFUB.AxBasic_X.CommandBusy AND MpFUB.AxBasic_X.MoveAbsolute
AND MpFUB.MpCNC5Axis.PowerOn;
MpData.AxPar_X.Velocity := Parameter.rVelocityAxisLinear; //mm/s
MpData.AxPar_X.Acceleration := 1000.0; //mm/s2
MpData.AxPar_X.Deceleration := 1000.0; //mm/s2
MpData.AxPar_X.Position := pParamPositions.lrHomePosX;
MpFUB.AxBasic_X.MoveAbsolute := MoveConditions.bAxisXMove AND MpFUB.MpCNC5Axis.PowerOn;
IF bTransitionCondition THEN
MpFUB.AxBasic_X.MoveAbsolute := FALSE;
enStepAuto := enAutoStep_TOOLCH_PRESS_DOWN;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Werkzeugwechsel Presse absenken
//---------------------------
enAutoStep_TOOLCH_PRESS_DOWN:
IF bTransitionCondition THEN
enStepAuto := enAutoStep_INIT;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Warten bis Tor geschlossen
//---------------------------
enAutoStep_WAIT_DOOR_CLOSED:
bTransitionCondition := TRUE;
Valves.bCloseGate := MoveConditions.bCloseFrontGate;
bTransitionCondition := gbSInFrontGateOk AND States.bSafetyInfeedOkDelayed;
IF bTransitionCondition THEN
enStepAuto := enAutoStep_WAIT_HOMING;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Warten bis Achsen Ref
//---------------------------
enAutoStep_WAIT_HOMING:
bTransitionCondition := MpFUB.AxBasic_X.IsHomed AND
MpFUB.AxBasic_Y.IsHomed AND
MpFUB.AxBasic_Z.IsHomed AND
MpFUB.AxBasic_A.IsHomed AND
MpFUB.AxBasic_B.IsHomed AND
MpFUB.AxBasic_Shuttle.IsHomed;
IF bTransitionCondition THEN
enStepAuto := enAutoStep_SHUTTLE_IN;
TimesLatch.diSteptime := gdiSystemTime;
END_IF
//Schuttle in Bearbeitungspos
//---------------------------
enAutoStep_SHUTTLE_IN:
@@ -1159,8 +1215,9 @@ PROGRAM _CYCLIC
MpData.AxPar_Shuttle.Acceleration := 1000.0; //mm/s2
MpData.AxPar_Shuttle.Deceleration := 1000.0; //mm/s2
MpData.AxPar_Shuttle.Position := pParamPositions.lrWorkPosShuttle;
MpFUB.AxBasic_Shuttle.MoveAbsolute := MoveConditions.bAxisShuttleMove;
MpFUB.AxBasic_Shuttle.MoveAbsolute := MoveConditions.bAxisShuttleMoveNeg;
IF bTransitionCondition THEN
MpFUB.AxBasic_Shuttle.MoveAbsolute := FALSE;
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_CNC_ACTIVE;
END_IF
@@ -1170,12 +1227,12 @@ PROGRAM _CYCLIC
//---------------------------
enAutoStep_CNC_ACTIVE:
bTransitionCondition := (Parameter.bTestRun OR (Times.diSteptime > 500000));
MpData.MpCnc5AxisPar.ProgramName := 'CncProg.cnc';
//FisMe
strCurrentCncPrg := gstrFilenames[usCncPrgSelection];
MpData.MpCnc5AxisPar.ProgramName := strCurrentCncPrg;
//MpData.MpCnc5AxisPar.ProgramName := lCurrentTool.SysPar.strCNCPrg;
//Parameter fixieren und an CNC Schreiben
//CNCVars.lrGlueGap := lCurrentTool.ProcPar.lrGlueGap;
//Sample CNCVars.lrGlueGap := lCurrentTool.ProcPar.lrGlueGap;
IF bTransitionCondition THEN
MpFUB.MpCNC5Axis.MoveProgram := TRUE;
@@ -1191,11 +1248,11 @@ PROGRAM _CYCLIC
//---------------------------
enAutoStep_CNC_FINISHED:
IF MFlags.b40_StartHP THEN
Valves.bHPValveOn := TRUE;
Valves.bHPValveOn := NOT Parameter.bTestRun;
MFlags.b40_StartHP := FALSE;
END_IF
IF MpFUB.MpCNC5Axis.MoveDone OR MpFUB.MpCNC5Axis.Error OR MFlags.b41_StopHP THEN
IF MpFUB.MpCNC5Axis.MoveDone OR MpFUB.MpCNC5Axis.Error OR MFlags.b41_StopHP OR VCButtons.AutoStopCycle.bCommand THEN
Valves.bHPValveOn := FALSE;
MFlags.b41_StopHP := FALSE;
END_IF
@@ -1204,10 +1261,14 @@ PROGRAM _CYCLIC
//CNC Program Ende
bTransitionCondition := MpFUB.MpCNC5Axis.MoveDone;
IF FALSE THEN
//FixMe
IF VCButtons.AutoStopCycle.bCommand THEN
//Abbruch
Valves.bHPValveOn := FALSE;
MpFUB.MpCNC5Axis.MoveProgram := FALSE;
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_WAIT_DOOR_OPEN;
ELSIF bTransitionCondition THEN
Valves.bHPValveOn := FALSE;
MpFUB.MpCNC5Axis.MoveProgram := FALSE;
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_ZHOME;
@@ -1256,7 +1317,7 @@ PROGRAM _CYCLIC
MpData.AxPar_X.Acceleration := 1000.0; //mm/s2
MpData.AxPar_X.Deceleration := 1000.0; //mm/s2
MpData.AxPar_X.Position := pParamPositions.lrHomePosX;
MpFUB.AxBasic_X.MoveAbsolute := MoveConditions.bAxisXMove;
MpFUB.AxBasic_X.MoveAbsolute := MoveConditions.bAxisXMoveNeg;
IF bTransitionCondition THEN
MpFUB.AxBasic_Y.MoveAbsolute := FALSE;
@@ -1299,7 +1360,7 @@ PROGRAM _CYCLIC
END_IF
//Schuttle in Bearbeitungspos
//Shuttle in Grundstellung
//---------------------------
enAutoStep_SHUTTLE_OUT:
bTransitionCondition := MpFUB.AxBasic_Shuttle.InPosition AND MpFUB.AxBasic_Shuttle.MoveDone AND
@@ -1308,7 +1369,7 @@ PROGRAM _CYCLIC
MpData.AxPar_Shuttle.Acceleration := 1000.0; //mm/s2
MpData.AxPar_Shuttle.Deceleration := 1000.0; //mm/s2
MpData.AxPar_Shuttle.Position := pParamPositions.lrHomePosShuttle;
MpFUB.AxBasic_Shuttle.MoveAbsolute := MoveConditions.bAxisShuttleMove;
MpFUB.AxBasic_Shuttle.MoveAbsolute := MoveConditions.bAxisShuttleMovePos;
IF bTransitionCondition THEN
TimesLatch.diSteptime := gdiSystemTime;
enStepAuto := enAutoStep_WAIT_DOOR_OPEN;
@@ -1318,7 +1379,8 @@ PROGRAM _CYCLIC
//T<EFBFBD>r <EFBFBD>ffnen
//---------------------------
enAutoStep_WAIT_DOOR_OPEN:
bTransitionCondition := TRUE;
Valves.bCloseGate := FALSE;
bTransitionCondition := gbInFrontGateOpen;
IF bTransitionCondition THEN
@@ -1335,12 +1397,13 @@ PROGRAM _CYCLIC
//Ventile ansteuern (Sicherheit mit einschleifen)
IF Valves.bPressUp AND Valves.bPressDown THEN
Valves.bPressDown := FALSE;
IF NOT lMachine.bMachineON OR gbSPLCInErrorBumper THEN
Valves.bCloseGate := FALSE;
END_IF
gbSOuCloseFrontgate := Valves.bCloseGate;
//HD Ventil
IF NOT gbSPLCInAxisEnabledOk THEN
IF NOT gbSPLCInDoorsBackOk OR NOT gbSPLCInDoorsBackOk OR NOT gbSInFrontGateOk THEN
Valves.bHPValveOn := FALSE;
END_IF
gbSOuHPOn := Valves.bHPValveOn;
@@ -1350,46 +1413,24 @@ PROGRAM _CYCLIC
//Fehlermeldungen
DoAlarms;
(*
//Zyliner<EFBFBD>berwachungen // Alarme ab 50
//Interface <EFBFBD>bergeordnete Anlage
//=================================================================================
//Achsfehler zur<EFBFBD>cksetzen
IF lMachine.bMachineON THEN
bWaitPowerSpindle := FALSE;
END_IF
IF (gVCCommands.bErrorReset OR EDGEPOS (gPB5.bInKeyStatus)) AND MpFUB.AxBasic_01.Error THEN
MpFUB.AxBasic_01.ErrorReset := TRUE;
END_IF
gbOuGripperChangeClose := TRUE;
gbOuGripperChangeOpen := FALSE;
//Aufr<EFBFBD>umen
IF bInit THEN
bInit := FALSE;
END_IF
//Farben Leuchttatert
gPB3.bOuGreen := (lMachine.enMode = enMACH_AUTOMATIC) AND (((enStepAuto = enAutoStep_HOME_WAIT_START) AND bBlink0_5) OR
(enStepAuto > enAutoStep_HOME_WAIT_START) AND (enStepAuto < enAutoStep_WAIT_START));
//Leuchttaster
gbOuLEDStartKey := (lMachine.enMode = enMACH_AUTOMATIC) AND ((enStepAuto = enAutoStep_HOME_WAIT_START)
OR (enStepAuto = enAutoStep_WAIT_START)
OR ((enStepAuto > enAutoStep_HOME_WAIT_START) AND (enStepAuto < enAutoStep_WAIT_START) AND bBlink0_5 )
OR ((enStepAuto > enAutoStep_WAIT_START) AND bBlink0_5 ));
*)
//Handshake T<EFBFBD>rfreigebe (FiXMe)
gCmd1.bRelDoorOpen := gCmd1.bReqDoorOpen AND NOT MpFUB.MpCNC5Axis.PowerOn AND NOT MpFUB.AxBasic_X.PowerOn AND
//Handshake T<EFBFBD>rfreigebe
(*gCmd1.bRelDoorOpen := gCmd1.bReqDoorOpen AND NOT MpFUB.MpCNC5Axis.PowerOn AND NOT MpFUB.AxBasic_X.PowerOn AND
NOT MpFUB.AxBasic_Y.PowerOn AND NOT MpFUB.AxBasic_Z.PowerOn AND NOT MpFUB.AxBasic_A.PowerOn AND
((lMachine.enMode <> enMACH_AUTOMATIC) OR ((enStepAuto = enAutoStep_WAIT_START)));
*)
//Externe Bremsansteuerung

View File

@@ -167,10 +167,7 @@ PROGRAM _INIT
gStatusVCControls.bProgramChanged := TRUE;
//Zylinder setzen
Valves.bReleaseGripper := FALSE;
Valves.bCloseGate := FALSE;
Valves.bHPValveOn := FALSE;
IF NOT (Valves.bPressDown XOR Valves.bPressUp) THEN
Valves.bPressUp := TRUE;
Valves.bPressDown := FALSE;
END_IF
END_PROGRAM

View File

@@ -7,7 +7,7 @@ TYPE
rAccDecell : REAL; (*+*)
rVelocityAxisLinear : REAL := 100; (*Verfahrgeschwindigkeit Einzelachsen Linear*)
rVelocityAxisAngle : REAL := 45; (*Verfahrgeschwindigkeit Einzelachsen Winkel*)
rVelocityShuttle : REAL := 240; (*Verfahrgeschwindigkeit Shuttle mm/s*)
rVelocityShuttle : REAL := 220; (*Verfahrgeschwindigkeit Shuttle mm/s*)
LimitAxis_X : typ_AxLimits;
LimitAxis_Y : typ_AxLimits;
LimitAxis_Z : typ_AxLimits;
@@ -20,10 +20,8 @@ TYPE
lrUpperLimit : LREAL; (*Oberer Positionsgrenzwerte*)
END_STRUCT;
typ_Valves : STRUCT (*Ventile*)
bReleaseGripper : BOOL; (*Greifer Freigeben*)
bCloseGate : BOOL; (*Einlegetor schlie<69>en*)
bHPValveOn : BOOL; (*HD Ventil Ein*)
bPressUp : BOOL; (*Presse Auffahren*)
bPressDown : BOOL; (*Presse Abbfahren*)
END_STRUCT;
typ_PosStates : STRUCT (*Positionen*)
bHomeX : BOOL; (*X - Achse in Grundstellung*)
@@ -35,7 +33,8 @@ TYPE
bHomeShuttle : BOOL; (*Shuttle in Einlegepos*)
END_STRUCT;
typ_CylinderPos : STRUCT (*Zylinderpositionen*)
bPressPosUp : BOOL;
bFrontGateOpen : BOOL;
bFrontGateClosed : BOOL;
END_STRUCT;
typ_EncoderState : STRUCT (*Status Geber (Absteckkontrolle bei ACP<43>)*)
usEncoderState : USINT; (*Status Geber *)
@@ -83,17 +82,19 @@ TYPE
( (*Schrittkette*)
enAutoStep_INIT := 0, (*Grundstellung pr<70>fen*)
enAutoStep_HOME_WAIT_START, (*GS: Warten Auf Startbefehl f<>r GS*)
enAutoStep_HOME_WAIT_DOORCLOSED, (*GS: Warten Tor zu*)
enAutoStep_HOME_WAIT_HOMING, (*GS: Warten Achsen Ref*)
enAutoStep_HOME_WAIT_ZHOME, (*GS: Warten bis Z in GS*)
enAutoStep_HOME_WAIT_YHOME, (*GS: Warten bis Y in GS*)
enAutoStep_HOME_WAIT_XHOME, (*GS: Warten bis Z in GS*)
enAutoStep_HOME_WAIT_AHOME, (*GS: Warten bis A in GS*)
enAutoStep_HOME_WAIT_BHOME, (*GS: Warten bis B in GS*)
enAutoStep_HOME_WAIT_SHUTTLEHOME, (*GS: Warten bis Shuttle in GS*)
enAutoStep_WAIT_RESTART := 9, (*Auf Neustart Warten*)
enAutoStep_WAIT_START := 10, (*Auf Startbedingungen Warten*)
enAutoStep_TOOLCH_PRESSPOS_RCHD := 20, (*Werkzeugwechsel - Warten bis Presspos angefahren*)
enAutoStep_TOOLCH_PRESS_DOWN, (*Werkzeugwechsel - Warten bis Presse geschlossen*)
enAutoStep_HOME_WAIT_DOOROPEN, (*GS: Warten Tor AUF*)
enAutoStep_WAIT_RESTART := 20, (*Auf Neustart Warten*)
enAutoStep_WAIT_START := 21, (*Auf Startbedingungen Warten*)
enAutoStep_WAIT_DOOR_CLOSED := 50, (*Warten bis T<>r geschlossen*)
enAutoStep_WAIT_HOMING, (*Warten Achsen Ref*)
enAutoStep_SHUTTLE_IN, (*Warten bis Shuttle eingeshuttelt*)
enAutoStep_CNC_ACTIVE := 70, (*Warten bis CNC Aktiv - CNC Starten*)
enAutoStep_CNC_FINISHED, (*Warten bis CNC Fertig*)
@@ -103,19 +104,23 @@ TYPE
enAutoStep_AHOME, (*Warten bis A-Achse R<>ckgestellt*)
enAutoStep_BHOME, (*Warten bis B-Achse R<>ckgestellt*)
enAutoStep_SHUTTLE_OUT, (*Warten bis Shuttle ausgeshuttelt*)
enAutoStep_WAIT_DOOR_OPEN, (*Warten bis Lichtschranke unterbrochen*)
enAutoStep_WAIT_DOOR_OPEN, (*Warten bis TOR AUF*)
enAutoStep_FINISHED
);
typ_Commands : STRUCT (*Befehle*)
bDummy : {REDUND_UNREPLICABLE} BOOL; (*<2A>*)
END_STRUCT;
typ_MoveConditions : STRUCT (*Bewegungsfreigaben*)
bAxisXMove : BOOL; (*Freigabe X Achse bewegen*)
bAxisXMovePos : BOOL; (*Freigabe X Achse bewegen*)
bAxisXMoveNeg : BOOL; (*Freigabe X Achse bewegen*)
bAxisYMove : BOOL; (*Freigabe Y Achse bewegen*)
bAxisZMove : BOOL; (*Freigabe Z Achse bewegen*)
bAxisZMovePos : BOOL; (*Freigabe Z Achse bewegen*)
bAxisZMoveNeg : BOOL; (*Freigabe Z Achse bewegen*)
bAxisAMove : BOOL; (*Freigabe A Achse bewegen*)
bAxisBMove : BOOL; (*Freigabe B Achse bewegen*)
bAxisShuttleMove : BOOL; (*Freigabe Shuttle Achse bewegen*)
bAxisShuttleMovePos : BOOL; (*Freigabe Shuttle Achse bewegen*)
bAxisShuttleMoveNeg : BOOL; (*Freigabe Shuttle Achse bewegen*)
bCloseFrontGate : BOOL; (*Freigaba Tor schlie<69>en*)
END_STRUCT;
END_TYPE
@@ -129,6 +134,7 @@ TYPE
TON_PowerCNC : TON;
TOF_Startkey : TOF;
TOF_SaftyInfeed : TOF;
Cyl_Frontdoor : FUB_CylinderCheck;
END_STRUCT;
typ_MpFUB : STRUCT (*MApp Funktionsbausteine*)
AxBasic_X : MpAxisBasic; (*Einzelachsfunktionalit<69>t*)
@@ -234,18 +240,16 @@ TYPE
AxisShuttleHome : gtyp_VCButton; (*Shuttle - Achse Referenzieren*)
AxisShuttleCalibrate : gtyp_VCButton; (*Shuttle - Achse Kalibrieren*)
HPOn : gtyp_VCButton; (*Ventil HD Ein*)
OpenGripper : gtyp_VCButton; (*Greifer <20>ffner*)
CloseGripper : gtyp_VCButton; (*Greifer Schlie<EFBFBD>en*)
OpenGate : gtyp_VCButton; (*Einlegetor <20>ffnen*)
CloseGate : gtyp_VCButton; (*Einlegetor schlie<EFBFBD>en*)
AutoStartHome : gtyp_VCButton; (*Starte Grundstellung*)
AutoStartCycle : gtyp_VCButton; (*Starte Zyklus*)
AutoStopCycle : gtyp_VCButton; (*Stopp Zyklus*)
AutoRequestHome : gtyp_VCButton; (*Grundstellung Anfordern (Abbruch Automatik)*)
AutoStartToolChange : gtyp_VCButton; (*Automatik Werkzeugwechselpos*)
END_STRUCT;
typ_VCStatus : STRUCT (*Status Datenpunkte f<>r Eingabefelder etc*)
usEditNrExtraPart1 : USINT; (*Status Bauteilnummer Zusatzteil editieren*)
usEditNrExtraPart2 : USINT; (*Status Bauteilnummer Zusatzteil editieren*)
usEditNrUpperTool : USINT; (*Status Bauteilnummer Oberwerkzeug editieren*)
usEditNrLowertool : USINT; (*Status Bauteilnummer Unterwekzeug editieren*)
usDtropDownCncPrg : USINT; (*CncProgramm ausw<73>hlen*)
END_STRUCT;
END_TYPE
@@ -253,22 +257,14 @@ END_TYPE
TYPE
typ_AlarmIDs : STRUCT (*Puffer f<>r Alarm IDs*)
udCartridgeClosed : UDINT; (*Kartuschenhalter nicht eingeschwenkt*)
udNoCartrige : UDINT; (*Keine Kartusche eingelegt*)
udCartrigeNotTouched : UDINT; (*Kartusche nicht angetastet*)
udCartrigeEmpty : UDINT; (*Kartusche ist leer*)
udCartrigeForceExceeded : UDINT; (*Kraft <20>berschritten Mischer leer*)
udCartrigeInforamtionMissing : UDINT; (*Informationen zur Kartusche nicht vollst<73>ndig*)
udPartInfoMissing : UDINT; (*Bauteilinformationen nicht vollst<73>ndig*)
udOperatorMissing : UDINT; (*Bediener nicht eingegeben*)
udHeatingDisabled : UDINT; (*Heizung deaktiviert*)
udNotPreaheated : UDINT; (*Werkzeuge noch nicht aufgeheizt*)
udVaccumLowerTool : UDINT; (*Vakuum Unterwerkzeug nicht erreicht*)
udVaccumUpperTool : UDINT; (*Vakuum Oberwerkzeug nicht erreicht*)
udOpenTimeExceeded : UDINT; (*Offene Zeit <20>berschritten*)
udFrontGateNotOpen : UDINT; (*Einlegetor <20>ffnet nicht*)
udFrontGateNotClosed : UDINT; (*Einlegetor schlie<69>t nicht*)
udEStopDuringCycle : UDINT; (*Nothalt w<>hrend Zyklus*)
udCNCErrorDuringCycle : UDINT; (*CNC Fehler*)
udAxisError : UDINT;
udWaterLvlMin : UDINT; (*Wassserstand HD Pumpe*)
udWaterPrePress3Bar : UDINT; (*Wasservordruck 3 Bar*)
udWaterPressMin : UDINT; (*Wasserdruck HD Min*)
END_STRUCT;
typ_AlarmSnippets : STRUCT (*Infos f<>r Alarmtexte*)
strEStopButton : STRING[40]; (*Identifikation Nothalttaster*)

View File

@@ -34,6 +34,7 @@ VAR
usParts : USINT; (*Teilezahl*)
udi : UDINT;
uiRecipe : UINT; (*Aktueles Rezept*)
usCncPrgSelection : USINT;
END_VAR
(*//REAL*)
(*//Strings*)
@@ -41,7 +42,8 @@ VAR
strDOName : STRING[80];
strTemp : STRING[80];
strOperator : STRING[20];
strMachinename : STRING[5];
strMachinename : STRING[15];
strCurrentCncPrg : STRING[80];
END_VAR
(*//Konstanten*)
VAR

View File

@@ -1,7 +1,7 @@
TYPE
ptyp_Positions : STRUCT (*Positionen*)
lrHomePosShuttle : LREAL := 235; (*HomePos Shuttle (Einlegepos)*)
lrHomePosShuttle : LREAL := 234; (*HomePos Shuttle (Einlegepos)*)
lrWorkPosShuttle : LREAL := 5; (*Bearbeitungspos Shuttle*)
lrHomePosX : LREAL := 2.0; (*Homepos X (Einlegepos)*)
lrHomePosY : LREAL := 10.0; (*Homepos Y*)

View File

@@ -15,15 +15,23 @@ PROGRAM _CYCLIC
MpFUB.UserXLogin.UserName := ADR (wstrUser);
MpFUB.UserXLogin.Password := ADR (wstrPassword);
IF bRemoteUser THEN
IF bRemoteUserAdmin THEN
wstrUser := "REMOTE";
wstrPassword := "08154711";
IF (brwcsncmp (ADR (wstrUser), ADR (MpFUB.UserXLogin.CurrentUser), 16) <> 0)THEN
MpFUB.UserXLogin.Login := TRUE;
END_IF
bRemoteUser := FALSE;
bRemoteUserAdmin := FALSE;
END_IF
IF bRemoteUserDefault AND (brwcsncmp (ADR ("NOUSER"), ADR (MpFUB.UserXLogin.CurrentUser), 16) = 0)THEN
wstrUser := "REMOTEOP";
wstrPassword := "08154711";
IF (brwcsncmp (ADR (wstrUser), ADR (MpFUB.UserXLogin.CurrentUser), 16) <> 0)THEN
MpFUB.UserXLogin.Login := TRUE;
END_IF
END_IF
IF (ludKeyID > 0) AND NOT bSetup THEN
udTemp := ludKeyID;
wstrPassword := UDINT_TO_WSTRING (udTemp);

View File

@@ -6,4 +6,6 @@ PROGRAM _INIT
MpFUB.UserXManagerUI.UIConnect := ADR (MpData.UserXMgrUIConnectType);
MpFUB.UserXLogin.Enable := TRUE;
bSetup := FALSE;
bRemoteUserAdmin := FALSE;
bRemoteUserDefault := TRUE;
END_PROGRAM

View File

@@ -1,6 +1,7 @@
VAR
bSetup : BOOL; (*Inbetriebnahmemodus (Leser umgehen)*)
bRemoteUser : BOOL;
bRemoteUserAdmin : BOOL; (*VPN Admin*)
bRemoteUserDefault : BOOL; (*VPN Default user (Autologin)*)
ludKeyID : REFERENCE TO UDINT; (*Referenz auf USB Leser ID*)
udTemp : UDINT;
uiTemp : UINT;

View File

@@ -107,4 +107,21 @@ TYPE
bCompletion : BOOL; (*Fertigstellung Eingabe*)
bCommand : BOOL; (*Befehlstatus*)
END_STRUCT;
gtyp_VCDropdownbox : STRUCT (*VC - Listbox*)
usStatus : USINT; (*Anzeige / Bedienstatus*)
usIndexDatapoint : USINT; (*Index - Auswahl*)
usMinIndex : USINT; (*Minimaler Index*)
usMaxIndex : USINT; (*Maximaler Index*)
bCompletion : BOOL; (*Fertigstellung Eingabe*)
bCommand : BOOL; (*Befehlstatus*)
END_STRUCT;
gtyp_VCSlider : STRUCT (*VC - Listbox*)
usStatus : USINT; (*Anzeige / Bedienstatus*)
usIndexDatapoint : USINT; (*Index - Auswahl*)
usMinIndex : USINT; (*Minimaler Index*)
usMaxIndex : USINT; (*Maximaler Index*)
usStartRange : USINT; (*Start Range*)
usEndRange : USINT; (*End Range*)
bCommand : BOOL; (*Befehlstatus*)
END_STRUCT;
END_TYPE

View File

@@ -15,7 +15,7 @@ VAR CONSTANT
VC_LOCK_BITPOS : USINT := 1;
VC_IN_EDIT : USINT := 15;
gNUMBER_OF_ESTOPS : USINT := 2; (*Anzahl Nothalttaster*)
gNUMBER_OF_DOORS : USINT := 2; (*Anzahl Schutzt<7A>ren*)
gNUMBER_OF_DOORS : USINT := 3; (*Anzahl Schutzt<7A>ren*)
END_VAR
VAR
LAYER_MAINPAGE_MAIN : USINT := 1; (*Hauptlayer*)

View File

@@ -26,7 +26,10 @@ PROGRAM _INIT
MpFUB.MpAlarmXHistoryUI.UISetup.AlarmListSize := 13;
//MpFUB.MpAlarmXHistoryUI.UISetup.TimeStampPattern :=
gVisuCtrl.GlobalLayer.usStateLayerAlarmBox.0 := TRUE;
gVisuCtrl.GlobalLayer.usStateLayerAlarmBox.0 := TRUE;
//Startlayer setzeb
VisuPageCtrl_Alarmtrl.usSetLayer := 4;
END_PROGRAM
@@ -42,8 +45,8 @@ PROGRAM _CYCLIC
IF (gVisuCtrl.enCurrentPage = P30_ALARMS) THEN
//Tabs einf<EFBFBD>rben // Layer Schalten
FOR usi := 4 TO 11 DO
VisuPageCtrl_TempCtrl.usStateLayer[usi].0 := (VisuPageCtrl_TempCtrl.usSetLayer <> usi); //Layerstatus wird als Farbe f<EFBFBD>r Tab verwendet
VisuPageCtrl_TempCtrl.usStateTabBtn[usi].0 := (usi >= 8) AND (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL); //Tuning / Profile Tabs nur f<EFBFBD>r KD User
VisuPageCtrl_Alarmtrl.usStateLayer[usi].0 := (VisuPageCtrl_Alarmtrl.usSetLayer <> usi); //Layerstatus wird als Farbe f<EFBFBD>r Tab verwendet
VisuPageCtrl_Alarmtrl.usStateTabBtn[usi].0 := (usi >= 8) AND (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL); //Tuning / Profile Tabs nur f<EFBFBD>r KD User
END_FOR
END_IF

View File

@@ -4,7 +4,7 @@ VAR
END_VAR
(*//Datenstrukturen*)
VAR
VisuPageCtrl_TempCtrl : gtyp_VisuCtrlPage; (*Seiteninterface allgemein*)
VisuPageCtrl_Alarmtrl : gtyp_VisuCtrlPage; (*Seiteninterface allgemein*)
MpData : typ_MpData;
END_VAR
(*//Funktionsbl<62>cke*)

View File

@@ -27,9 +27,9 @@ ACTION DoSetupmodeButtons:
END_IF
//Button Reset E-Stop (nur im Einrichtbetrieb)
VCButtons.MachineResetEStop.usStatus.0 := gbSPLCInEstopOk OR NOT gMachine1.bMachineON;
VCButtons.MachineResetDoors.usStatus.0 := gbSPLCInAxisEnabledOk OR NOT gMachine1.bMachineON;
VCButtons.MachineResetEStop.usStatus.0 := TRUE; // gbSPLCInEstopOk OR NOT gMachine1.bMachineON;
VCButtons.MachineResetDoors.usStatus.0 := TRUE; // gbSPLCInAxisEnabledOk OR NOT gMachine1.bMachineON;
//T<EFBFBD>ren Verriegeln entriegeln
VCButtons.MachineLockUnlockDoors.usStatus.0 := NOT gbSPLCInEstopOk;
VCButtons.MachineLockUnlockDoors.usStatus.0 := TRUE; // NOT gbSPLCInEstopOk;
END_ACTION

View File

@@ -9,6 +9,7 @@ TYPE
TON_StartDelay : TON; (*Wartezeit nach Start*)
TOF_StartKey : TOF; (*Wartezeit nach Startaster gedr<64>ckt*)
TOF_DoorKey : TOF;
TOF_BumperError : TOF; (*Wartehzeit nach Fehler Handschutzleiste*)
AsIOAccRead : AsIOAccRead; (*Register aus SLX Lesen*)
END_STRUCT;
typ_MpFUB : STRUCT (*MApp Funktionsbausteine*)
@@ -31,17 +32,17 @@ TYPE
END_STRUCT;
typ_AlarmIDs : STRUCT (*Puffer f<>r Alarm IDs*)
udEStop : ARRAY[1..gNUMBER_OF_ESTOPS]OF UDINT; (*Nothalttaster*)
udEStopHPPump : UDINT; (*Nothalt von HD-Pumpe*)
udDoor : ARRAY[1..gNUMBER_OF_DOORS]OF UDINT; (*Wartungst<73>ren*)
udDoorUnlocked : ARRAY[1..gNUMBER_OF_DOORS]OF UDINT; (*Wartungst<73>ren*)
udDoorUnreseted : ARRAY[1..gNUMBER_OF_DOORS]OF UDINT; (*Wartungst<73>ren*)
udRefeedEstop : UDINT; (*R<>ckf<6B>hrkreis Nothalt*)
udRefeedInfeed : UDINT; (*R<>ckf<6B>hrkreis Einlegebereich*)
udAirCtrlEstop : UDINT;
udAirCtrlInfeed : UDINT;
udLightBarrier : UDINT;
udBumperActivated : UDINT; (*Handschutzleiste ausgel<65>st*)
udBumperNotReseted : UDINT; (*Handschutzleiste nicht quittiert*)
END_STRUCT;
typ_AlarmSnippets : STRUCT (*Infos f<>r Alarmtexte*)
strEStopButton : STRING[40]; (*Identifikation Nothalttaster*)
strDoorOpen : STRING[40]; (*Identifikaton Wartungst<73>r*)
strDoorUnlocked : STRING[40]; (*Identifikaton Wartungst<73>r*)
strDoorUnreseted : STRING[40]; (*Identifikaton Wartungst<73>r*)
END_STRUCT;
END_TYPE

View File

@@ -23,24 +23,15 @@ PROGRAM _CYCLIC
// gbOuFanOn := 0;
END_IF
//Werkzeugwechsler deaktiviert
//Temperaturregelung
VCButtons.TempCtrl.usStatus.0 := NOT gMachine1.bMachineON;
//Temperaturregelung Deaktiviert
VCButtons.TempCtrl.usStatus.0 := TRUE; //DisabledNOT gMachine1.bMachineON;
VCButtons.TempCtrl.usStatus.1 := NOT gbSPLCInEstopOk;
//Einrichtbetrieb Anlage 1
//=================================================
//Button Setupmode
VCButtons.MachineSetupMode.usStatus.0 := (gUserRights.Right6_Setup < mpUSERX_ACCESS_FULL) AND NOT gMachine1.bSetupMode;
IF (gMachine1.enMode <> enMACH_JOG) OR (gUserRights.Right4_Jog < mpUSERX_ACCESS_FULL) THEN
//FixMe
//VCButtons.MachineSetupMode.bCommand := FALSE;
END_IF
gMachine1.bSetupMode := VCButtons.MachineSetupMode.bCommand ;
@@ -68,7 +59,7 @@ PROGRAM _CYCLIC
ELSIF gPB2.bInKeyStatus AND (gUserRights.Right4_Jog >= mpUSERX_ACCESS_ACTUATE) THEN
//Tippbetrieb nicht aktiv
gMachine1.enMode := enMACH_JOG;
ELSIF gPB3.bInKeyStatus AND (gMachine1.enMode <> enMACH_AUTOMATIC) AND gbSPLCInDoorsOk THEN
ELSIF gPB3.bInKeyStatus AND (gMachine1.enMode <> enMACH_AUTOMATIC) AND gbSPLCInDoorsBackOk THEN
// AND NOT gMachine1.bDisableMachine AND NOT gAlarmReaction.b1StopAutomatic
//AND (gUserRights.Right1_Operate >= mpUSER_ACCESS_ACTUATE) THEN //AND NOT gAlarmReaction.b2FinishCycle THEN
//Automatik anfordern
@@ -136,7 +127,8 @@ PROGRAM _CYCLIC
//Globale Layer verwalten
//===============================================================================================================
//Setupmode
gVisuCtrl.GlobalLayer.usStateLayerSetupMode.0 := NOT gMachine1.bSetupMode;
//Tasten aktiviert wg Mobile panel
gVisuCtrl.GlobalLayer.usStateLayerSetupMode.0 := FALSE; //NOT gMachine1.bSetupMode;
IF EDGEPOS (gMachine1.bSetupMode) THEN
DoInitSetupmodeButtons;
MpAuditCustomEvent (gMpAuditTrail, "Setupmode", "", "enabled");
@@ -144,7 +136,8 @@ PROGRAM _CYCLIC
IF EDGENEG (gMachine1.bSetupMode) THEN
MpAuditCustomEvent (gMpAuditTrail, "Setupmode", "", "disabled");
END_IF
IF gMachine1.bSetupMode THEN
//Wg Mobile Panel
IF gMachine1.bSetupMode OR TRUE THEN
DoSetupmodeButtons;
END_IF
@@ -159,8 +152,9 @@ PROGRAM _CYCLIC
(gMachine1.enMode = enMACH_JOG) OR (gMachine1.enMode = enMACH_AUTOMATIC)
);
//Tippen im CNC deaktiviert
IF EDGEPOS (gMachine1.enMode = enMACH_JOG) THEN
gVisuCtrl.MainPage.usSetLayer := LAYER_MAINPAGE_JOG;
gVisuCtrl.MainPage.usSetLayer := LAYER_MAINPAGE_SETUPMODE;
END_IF
//Layer f<EFBFBD>r die einzelnen Seiten verwalten
@@ -207,16 +201,8 @@ PROGRAM _CYCLIC
//Alarme (Maschinenalarme)
//=================================================
//0 Sicherung 24 V DC
IF FALSE THEN
// MpAlarmSet (gMpGroup1AlarmMachine, 0, '');
ELSE
// MpAlarmReset (gMpGroup1AlarmMachine, 0);
END_IF
//Reset Sicherung 24V DC
//1 Druckluft<EFBFBD>berwachung
(*
FUBs.TON_AirOk1.IN := gbInAirOkEStop ; //gbInAirOK;
FUBs.TON_AirOk1.PT := t#2s;
FUBs.TON_AirOk1 ();
@@ -233,100 +219,111 @@ PROGRAM _CYCLIC
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udAirCtrlEstop);
AlarmIDs.udAirCtrlEstop := 0;
END_IF
//2 Anforderung Grundstellung
IF gMachine1.bRequestHoming AND gMachine1.bMachineON THEN
// MpAlarmSet (gMpGroup1AlarmMachine, 2, '');
ELSIF NOT gMachine1.bRequestHoming THEN
// MpAlarmReset (gMpGroup1AlarmMachine, 2);
END_IF
//3 Roboter nicht in Automatik
IF NOT gABBRobot1.In.bAutomatic AND gMachine1.bMachineON THEN
// MpAlarmSet (gMpGroup1AlarmMachine, 3, '');
ELSIF gABBRobot1.In.bAutomatic THEN
// udTemp := MpAlarmReset (gMpGroup1AlarmMachine, 3);
END_IF
*)
//Alarme (Sicherheitsalarme)
//=================================================
//Nothalt bet<EFBFBD>tigt
IF NOT gbSInEStopPanel AND gMachine1.bMachineON THEN
IF NOT gbSInEStop AND gMachine1.bMachineON THEN
IF (AlarmIDs.udEStop[1] = 0) THEN
brsstrcpy (ADR (AlarmTextSnippets.strEStopButton), ADR ('Einlegen / Panel'));
AlarmIDs.udEStop[1] := MpAlarmXSet (gMpAlarmXCore, 'EStopButton');
brsstrcpy (ADR (AlarmTextSnippets.strEStopButton), ADR ('1 (Einlegebereich)'));
END_IF
ELSIF gbSInEStopPanel AND (AlarmIDs.udEStop[1] > 0) THEN
ELSIF gbSInEStop AND (AlarmIDs.udEStop[1] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEStop[1]);
AlarmIDs.udEStop[1] := 0;
END_IF
(*
IF NOT gbSInEStop2Ok AND gMachine1.bMachineON THEN
IF (AlarmIDs.udEStop[2] = 0) THEN
AlarmIDs.udEStop[2] := MpAlarmXSet (gMpAlarmXCore, 'EStopButton');
brsstrcpy (ADR (AlarmTextSnippets.strEStopButton), ADR ('2 (Reserve)'));
//Nothalt von HD-Pumpe
IF NOT gbSInEstopHPPump AND gMachine1.bMachineON THEN
IF (AlarmIDs.udEStopHPPump = 0) THEN
AlarmIDs.udEStopHPPump := MpAlarmXSet (gMpAlarmXCore, 'EStopHPPump');
END_IF
ELSIF gbSInEStop2Ok AND (AlarmIDs.udEStop[2] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEStop[2]);
AlarmIDs.udEStop[2] := 0;
ELSIF gbSInEstopHPPump AND (AlarmIDs.udEStopHPPump > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEStopHPPump);
AlarmIDs.udEStopHPPump := 0;
END_IF
//Nothalt nicht quittiert
IF gbSInEStop1Ok AND gbSInEStop2Ok AND NOT gbSPLCInEstopOk AND gMachine1.bMachineON THEN
IF gbSInEStop AND gbSInEstopHPPump AND NOT gbSPLCInEstopOk AND gMachine1.bMachineON THEN
MpAlarmXSet (gMpAlarmXCore, 'EStopNACK');
ELSIF gbSInEStop1Ok THEN
ELSIF gbSPLCInEstopOk THEN
MpAlarmXReset (gMpAlarmXCore, 'EStopNACK');
END_IF
//Wartungst<EFBFBD>r offen
IF NOT gbInDoorClosed1 AND gMachine1.bMachineON THEN
IF NOT gbSInMaintenanceDoorFrontOk AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoor[1] = 0) THEN
brsstrcpy (ADR (AlarmTextSnippets.strDoorOpen), ADR ('Vorne'));
AlarmIDs.udDoor[1] := MpAlarmXSet (gMpAlarmXCore, 'DoorOpen');
brsstrcpy (ADR (AlarmTextSnippets.strDoorOpen), ADR ('1 (Links)'));
END_IF
ELSIF gbInDoorClosed1 AND (AlarmIDs.udDoor[1] > 0) THEN
ELSIF gbSInMaintenanceDoorFrontOk AND (AlarmIDs.udDoor[1] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoor[1]);
AlarmIDs.udDoor[1] := 0;
END_IF
IF NOT gbInDoorClosed2 AND gMachine1.bMachineON THEN
IF NOT gbSInMaintenanceDoorBackOk AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoor[2] = 0) THEN
brsstrcpy (ADR (AlarmTextSnippets.strDoorOpen), ADR ('Hinten Links'));
AlarmIDs.udDoor[2] := MpAlarmXSet (gMpAlarmXCore, 'DoorOpen');
brsstrcpy (ADR (AlarmTextSnippets.strDoorOpen), ADR ('2 (Rechts)'));
END_IF
ELSIF gbInDoorClosed2 AND (AlarmIDs.udDoor[2] > 0) THEN
ELSIF gbSInMaintenanceDoorBackOk AND (AlarmIDs.udDoor[2] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoor[2]);
AlarmIDs.udDoor[2] := 0;
END_IF
//Wartungst<EFBFBD>r nicht verriegelt
IF gbInDoorClosed1 AND NOT gbSInDoor1Ok AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoorUnlocked[1] = 0) THEN
AlarmIDs.udDoorUnlocked[1] := MpAlarmXSet (gMpAlarmXCore, 'DoorUnlocked');
brsstrcpy (ADR (AlarmTextSnippets.strDoorUnlocked), ADR ('1 (Links)'));
IF NOT gbSInMaintenanceDoorBack2Ok AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoor[3] = 0) THEN
brsstrcpy (ADR (AlarmTextSnippets.strDoorOpen), ADR ('Hinten rechts'));
AlarmIDs.udDoor[3] := MpAlarmXSet (gMpAlarmXCore, 'DoorOpen');
END_IF
ELSIF gbInDoorClosed1 AND (AlarmIDs.udDoorUnlocked[1] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoorUnlocked[1]);
AlarmIDs.udDoorUnlocked[1] := 0;
ELSIF gbSInMaintenanceDoorBackOk AND (AlarmIDs.udDoor[3] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoor[3]);
AlarmIDs.udDoor[3] := 0;
END_IF
//Wartungst<EFBFBD>r nicht quittiert
IF gbSInMaintenanceDoorFrontOk AND NOT gbSPLCInDoorsFrontOk AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoorUnreseted[1] = 0) THEN
brsstrcpy (ADR (AlarmTextSnippets.strDoorUnreseted), ADR ('Vorne'));
AlarmIDs.udDoorUnreseted[1] := MpAlarmXSet (gMpAlarmXCore, 'DoorUnreseted');
END_IF
ELSIF gbSInMaintenanceDoorFrontOk AND (AlarmIDs.udDoorUnreseted[1] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoorUnreseted[1]);
AlarmIDs.udDoorUnreseted[1] := 0;
END_IF
IF gbInDoorClosed2 AND NOT gbSInDoor2Ok AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoorUnlocked[2] = 0) THEN
AlarmIDs.udDoorUnlocked[2] := MpAlarmXSet (gMpAlarmXCore, 'DoorUnlocked');
brsstrcpy (ADR (AlarmTextSnippets.strDoorUnlocked), ADR ('2 (Rechts)'));
IF gbSInMaintenanceDoorBackOk AND NOT gbSPLCInDoorsBackOk AND gMachine1.bMachineON THEN
IF (AlarmIDs.udDoorUnreseted[2] = 0) THEN
brsstrcpy (ADR (AlarmTextSnippets.strDoorUnreseted), ADR ('Vorne'));
AlarmIDs.udDoorUnreseted[2] := MpAlarmXSet (gMpAlarmXCore, 'DoorUnreseted');
END_IF
ELSIF gbInDoorClosed2 AND (AlarmIDs.udDoorUnlocked[2] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoorUnlocked[2]);
AlarmIDs.udDoorUnlocked[2] := 0;
ELSIF gbSPLCInDoorsBackOk AND (AlarmIDs.udDoorUnreseted[2] > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udDoorUnreseted[2]);
AlarmIDs.udDoorUnreseted[2] := 0;
END_IF
*)
//Handschutzleiste ausgel<EFBFBD>st
IF NOT gbSInBumperGateOk THEN
IF (AlarmIDs.udBumperActivated = 0) THEN
AlarmIDs.udBumperActivated := MpAlarmXSet (gMpAlarmXCore, 'BumperActivated');
END_IF
ELSIF gbSInBumperGateOk AND (AlarmIDs.udBumperActivated > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udBumperActivated);
AlarmIDs.udBumperActivated := 0;
END_IF
//Handschutzleiste nicht quittiert
IF gbSPLCInErrorBumper THEN
IF (AlarmIDs.udBumperNotReseted = 0) THEN
AlarmIDs.udBumperNotReseted := MpAlarmXSet (gMpAlarmXCore, 'BumperNotReseted');
END_IF
ELSIF NOT gbSPLCInErrorBumper AND (AlarmIDs.udBumperNotReseted > 0) THEN
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udBumperNotReseted);
AlarmIDs.udBumperNotReseted := 0;
END_IF
//R<EFBFBD>cklesefehler Nothalt
IF gbSPLCInRdbckErrorEStop THEN
@@ -349,20 +346,6 @@ PROGRAM _CYCLIC
END_IF
//47 T<EFBFBD>r nicht quittiert
// IF gbSInDoor AND gbSInCoverLeft AND gbSInCoverRight AND gbSInSlay AND NOT gbSPLCInDoorsOk AND gMachine1.bMachineON THEN
// MpAlarmSet (gMpGroup2AlarmSafety, 47, '');
// ELSIF gbSPLCInDoorsOk THEN
// MpAlarmReset (gMpGroup2AlarmSafety, 47);
// END_IF
//48 T<EFBFBD>r nicht verriegelt
// IF gbInDoorClosed AND NOT gbOuLockDoor AND gbSPLCInEstopOk AND gMachine1.bMachineON THEN
// MpAlarmSet (gMpGroup2AlarmSafety, 48, '');
// ELSIF gbInDoorClosed AND gbOuLockDoor THEN
// MpAlarmReset (gMpGroup2AlarmSafety, 48);
// END_IF
//Anlage Ein Verz<EFBFBD>gert
FUBs.TOF_MachineOn.IN := gMachine1.bMachineON;
@@ -377,19 +360,28 @@ PROGRAM _CYCLIC
//Sch<EFBFBD>tz<EFBFBD>berwachugn R<EFBFBD>cklesesignale - Dummyaufruf wg. Mapping (werden direkt in SPLC gemappt
//Resetsignal Nothalt
gbSPLCResetEStop := (gPB5.bInKeyStatus OR VCButtons.MachineResetEStop.bCommand) AND
gbSPLCResetEStop := (gbInResetKey OR VCButtons.MachineResetEStop.bCommand) AND
gMachine1.bMachineON AND NOT bInit;
gbSPLCResetDoors := (gPB5.bInKeyStatus OR EDGEPOS (gbInStartKey) OR VCButtons.MachineResetDoors.bCommand) AND
gbSPLCResetDoors := (VCButtons.MachineResetDoors.bCommand OR
(EDGEPOS (gbInResetDoorKey) AND NOT gbSPLCInDoorsFrontOk AND gbSInMaintenanceDoorFrontOk) OR
(EDGEPOS (gbInResetDoorKey) AND NOT gbSPLCInDoorsBackOk AND gbSInMaintenanceDoorBackOk AND gbSInMaintenanceDoorBack2Ok)
)AND
gMachine1.bMachineON AND NOT bInit;
gbSPLCResetInfeed := (gPB5.bInKeyStatus OR EDGEPOS (gbInStartKey) OR VCButtons.MachineResetDoors.bCommand) AND
gMachine1.bMachineON AND NOT bInit;
gbSPLCResetBumperError := gbSPLCInErrorBumper AND EDGEPOS (gbInResetDoorKey) AND gMachine1.bMachineON AND NOT bInit;
gbSPLCResetReadbackError := (VCButtons.MachineResetEStop.bCommand OR gPB5.bInKeyStatus) AND MpAlarmXCheckReaction (gMpAlarmXCore, 'ReactionMachineOFF');
gbSPLCResetReadbackError := (VCButtons.MachineResetEStop.bCommand OR gbInResetKey) AND MpAlarmXCheckReaction (gMpAlarmXCore, 'ReactionMachineOFF');
//Outputs
//================================================
//gbOuAcoposEnable := gMachine1.bMachineON;
//Handschutzleisete
FUBs.TOF_BumperError.IN := NOT gbIn110A1Error;
FUBs.TOF_BumperError.PT := t#300ms;
FUBs.TOF_BumperError ();
gbOuPower110A1 := gMachine1.bMachineON;
//Sicherheitsausg<EFBFBD>nge freigeben
gbSOuMainsSafetyEStop := gMachine1.bMachineON;
@@ -400,7 +392,9 @@ PROGRAM _CYCLIC
//R<EFBFBD>cklesesignale
gbSPLCReadbackEStop := gbInReadbackEstop;
gbSPLCReadbackInfeed := gbInReadbackDoors;
//Anlagenstauts
gbSPLCMachineOn := gMachine1.bMachineON;
gbSPLCJogMode := (gMachine1.enMode = enMACH_JOG);
//Zuhaltung
IF (EDGEPOS (gPB4.bInKeyStatus) AND NOT FUBs.TOF_DoorKey.Q AND NOT gCmd1.bReqDoorOpen) OR EDGENEG (VCButtons.MachineLockUnlockDoors.bCommand) THEN
@@ -415,48 +409,17 @@ PROGRAM _CYCLIC
gCmd1.bReqDoorOpen := FALSE;
END_IF
//gbOuDoorLock1 := gbInDoorClosed1 AND NOT (gCmd1.bReqDoorOpen AND gCmd1.bRelDoorOpen) AND gbSPLCInEstopOk;
//Hauptventil (<EFBFBD>ber Sicheren Ausgang)
//gbSOuMainValve := gMachine1.bMachineON;
//Anlagenbeleuchtung
//------------------------------------------------
gbOuMachLightOn := VCButtons.MachineLight.bCommand;
VCButtons.MachineLight.usStatus.0 := TRUE; //Keine Beleuchtung Taster deaktivieren
// cond = Estop
// blink 0,5Hz = Ready to reset
gPB1.bOuGreen := gMachine1.bMachineON;
gPB1.bOuRed := NOT gMachine1.bMachineON;
//Tippbetrieb (gibts nicht)
gPB2.bOuWhite := (gMachine1.enMode <> enMACH_JOG) AND NOT gMachine1.bMachineHOME AND gMachine1.bMachineON AND gbSPLCInDoorsOk AND NOT gPB2.bOuGreen;
gPB2.bOuGreen := (gMachine1.enMode = enMACH_JOG) AND gMachine1.bMachineON;
//Automatik / Grundstellung
gPB3.bOuYellow := gMachine1.bMachineHOME AND gMachine1.bMachineON AND TRUE;
//Green in Mach Control
gPB3.bOuWhite := (gMachine1.enMode <> enMACH_AUTOMATIC) AND NOT gMachine1.bMachineHOME AND gMachine1.bMachineON AND gbSPLCInDoorsOk AND NOT gPB3.bOuGreen;
//ander Farben in MachCtrl-Gesetzt
//gPB3.bOuWhite := (gMachine1.enMode <> enMACH_AUTOMATIC) AND gMachine1.bMachineON AND gMachine1.bMachineHOME AND gbSPLCInDoorsOk; //AND NOT gAlarmReaction.b1StopAutomatic;
//T<EFBFBD>rverriegeleng
gPB4.bOuWhite := FALSE;
// gPB4.bOuGreen := gbOuDoorLock1 AND gbOuDoorLock2;
// gPB4.bOuYellow := gCmd1.bRelDoorOpen AND NOT gCmd1.bRelDoorOpen AND gbOuDoorLock1 AND gbOuDoorLock2;
// gPB4.bOuRed := NOT gbOuDoorLock1 AND NOT gbOuDoorLock2;
//E-Stop Reset (Rot: Notaus, Yellow: St<EFBFBD>rung)
gPB5.bOuRed := NOT gbSPLCInEstopOk OR (NOT gbSPLCInDoorsOk AND bBlink0_5);
gPB5.bOuYellow := NOT gPB5.bOuRed AND gbSPLCInEstopOk AND bBlink0_5 ;// AND
// ((MpFUB.MpAlarmGroup1Machine.MpAlarmBasic.ActiveAlarms > 0) OR (MpFUB.MpAlarmGroup2Safety.MpAlarmBasic.ActiveAlarms > 0));
// (bSafetyError AND bBlink0_5);
gbOuLEDResetDoor := (NOT gbSPLCInDoorsBackOk OR NOT gbSPLCInDoorsFrontOk OR gbSPLCInErrorBumper) AND bBlink0_5 AND gMachine1.bMachineON;
gbOuLEDReset := NOT gbSPLCInEstopOk AND bBlink0_5 AND gMachine1.bMachineON;
//Zeiten Taster entprellen

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.5.113 SP?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Package Version="1.00.0" xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File">Project.language</Object>
<Object Type="Package" Description="Global Types and Vars">GlobalVars</Object>
<Object Type="Package">Common</Object>
<Object Type="Package" Description="Comunication Objects">Communication</Object>
<Object Type="Package" Description="Kommunikation">Communication</Object>
<Object Type="Package" Description="Maschine - Übergeordnet">Machine</Object>
<Object Type="Package" Description="Machine - Ablaufsteuerung">MachCtrl</Object>
<Object Type="Package" Description="Visualisierung">Vsualization</Object>

View File

@@ -2,4 +2,6 @@ PSetup: wei
Maintenance: brezn
PLC: gloiffe
Auditrail: fmc
Auditrail: fmc
Panel: helles

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<AlarmSystem xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="HistoryLength" Value="1000"/>
<Property Name="SnippetBufferSize" Value="150"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<ComponentVersions xmlns="http://br-automation.co.at/AS/VC/Project">
<ComponentVersion>
<Property Name="ClassId" Value="0x00000500"/>

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Languages xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="Default" Value="de"/>
<Property Name="FallBackLanguage" Value="de"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Project xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="EnableEvents" Value="True"/>
<Property Name="SharedTargetResourceRoot" Value=""/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.1.4.47"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Bitmap xmlns="http://br-automation.co.at/AS/VC/Project" Name="BackTransparent">
<Property Name="Description" Value="bitmap to make shadow while popup"/>
<Property Name="File" Value="BackTransparent.png"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.5.113 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Bitmap xmlns="http://br-automation.co.at/AS/VC/Project" Name="BackgroundWXGA">
<Property Name="Description" Value="Kerschdorfer Hintergrund WXGA"/>
<Property Name="File" Value="BackgroundWXGA.png"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="1"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Control">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="7"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Control_pressed">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="8"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Decrease">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="42"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Decrease_pressed">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="43"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Global_Area">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="3"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Global_Area_pressed">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="4"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Increase">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="45"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_Increase_pressed">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="44"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_KeyRingOff">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="29"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.3.4.121 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Border xmlns="http://br-automation.co.at/AS/VC/Project" ClassId="0x00003005" Name="Button_KeyRingOn">
<Property Name="BorderBitmapGroup" Value="Source[local].BitmapGroup[Borders]"/>
<Property Name="BorderBitmapGroupIndex" Value="30"/>

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