Projektdateien hinzufügen.
This commit is contained in:
18
PLC/DUTs/E_BATTERY_STATUS.TcDUT
Normal file
18
PLC/DUTs/E_BATTERY_STATUS.TcDUT
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="E_BATTERY_STATUS" Id="{99b02815-2b47-4159-a889-c86170baa34d}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
{attribute 'strict'}
|
||||||
|
TYPE E_BATTERY_STATUS :
|
||||||
|
(
|
||||||
|
ERROR := 1,
|
||||||
|
OFF := 2,
|
||||||
|
READY := 3,
|
||||||
|
ACTIVE := 4,
|
||||||
|
MAINTENANCE := 5,
|
||||||
|
TESTING := 6
|
||||||
|
);
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
17
PLC/DUTs/E_CHARGE_STATUS.TcDUT
Normal file
17
PLC/DUTs/E_CHARGE_STATUS.TcDUT
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="E_CHARGE_STATUS" Id="{7a281462-bf73-4949-96d8-aca55bee6c60}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
{attribute 'strict'}
|
||||||
|
TYPE E_CHARGE_STATUS :
|
||||||
|
(
|
||||||
|
UNDEFINED := 1,
|
||||||
|
EMPTY := 2,
|
||||||
|
CHARGING := 3,
|
||||||
|
DISCHARGING := 4,
|
||||||
|
FULL := 5
|
||||||
|
);
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
15
PLC/DUTs/E_REACTIVE_POWER_TYPE.TcDUT
Normal file
15
PLC/DUTs/E_REACTIVE_POWER_TYPE.TcDUT
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="E_REACTIVE_POWER_TYPE" Id="{e2c788a7-c536-4b02-910e-6cbe600afdab}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
{attribute 'strict'}
|
||||||
|
TYPE E_REACTIVE_POWER_TYPE :
|
||||||
|
(
|
||||||
|
INDUCTIVE := 1,
|
||||||
|
CAPACITIVE := 2,
|
||||||
|
NONE := 3
|
||||||
|
);
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
136
PLC/DUTs/ST_EMS_MODBUS_INTERFACE.TcDUT
Normal file
136
PLC/DUTs/ST_EMS_MODBUS_INTERFACE.TcDUT
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="ST_EMS_MODBUS_INTERFACE" Id="{c26c9ee9-feee-46cf-86e6-45d1a1e6819c}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_EMS_MODBUS_INTERFACE :
|
||||||
|
STRUCT
|
||||||
|
// Size = 16 * 2 byte = 32 byte
|
||||||
|
// Addr: 10.000
|
||||||
|
sManufacturer : STRING(32); // 1 char = 1 byte
|
||||||
|
|
||||||
|
// Addr: 10.016
|
||||||
|
sModelname : STRING(32);
|
||||||
|
|
||||||
|
// Addr: 10.032
|
||||||
|
sSerialnumber : STRING(32);
|
||||||
|
|
||||||
|
// Addr: 10.048
|
||||||
|
sBMSVersion : STRING(64);
|
||||||
|
|
||||||
|
// Addr: 10.080
|
||||||
|
uiTotalParallelMembers : UINT; //uint 16bit = 1 Word
|
||||||
|
|
||||||
|
// Addr: 10.081
|
||||||
|
uiActiveParallelMembers : UINT;
|
||||||
|
|
||||||
|
// Addr: 11.000
|
||||||
|
eBatteryStatus : E_BATTERY_STATUS;
|
||||||
|
|
||||||
|
// Addr: 11.001
|
||||||
|
eChargeStatus : E_CHARGE_STATUS;
|
||||||
|
|
||||||
|
// Addr: 11.002
|
||||||
|
// Unit: Ah
|
||||||
|
udiChargeCapacity : UDINT; // 32bit
|
||||||
|
|
||||||
|
// Addr: 11.004
|
||||||
|
// Unit: Wh
|
||||||
|
udiEnergyCapacity : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.006
|
||||||
|
// Unit: W
|
||||||
|
udiMaxChargingActivePower : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.008
|
||||||
|
// Unit: W
|
||||||
|
udiMaxDischargingActivePower : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.010
|
||||||
|
// Unit: var
|
||||||
|
udiMaxAvailableInductiveReactivePower : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.012
|
||||||
|
// Unit: var
|
||||||
|
udiMaxAvailableCapacitiveReactivePower : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.014
|
||||||
|
// Unit: %
|
||||||
|
uiSelfDischargeRate : UINT; // 16 bit
|
||||||
|
|
||||||
|
// Addr: 11.015
|
||||||
|
// Unit: %
|
||||||
|
uiMaxAllowedSOC : UINT;
|
||||||
|
|
||||||
|
// Addr: 11.016
|
||||||
|
// Unit: %
|
||||||
|
uiMinAllowedSOC : UINT;
|
||||||
|
|
||||||
|
// Addr: 11.017
|
||||||
|
// Unit: %
|
||||||
|
uiCurrentSOC : UINT;
|
||||||
|
|
||||||
|
// Addr: 11.018
|
||||||
|
// Unit: %
|
||||||
|
uiCurrentDOD : UINT;
|
||||||
|
|
||||||
|
// Addr: 11.019
|
||||||
|
// Unit: Wh
|
||||||
|
udiChargedEnergy : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.021
|
||||||
|
// Unit: Wh
|
||||||
|
udiAvailableEnergy : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.023
|
||||||
|
// Unit: %
|
||||||
|
uiCurrentSOH : UINT;
|
||||||
|
|
||||||
|
// Addr: 11.024
|
||||||
|
// Unit: A
|
||||||
|
diTotalACCurrentPhase1 : DINT;
|
||||||
|
|
||||||
|
// Addr: 11.025
|
||||||
|
// Unit: A
|
||||||
|
diTotalACCurrentPhase2 : DINT;
|
||||||
|
|
||||||
|
// Addr: 11.026
|
||||||
|
// Unit: A
|
||||||
|
diTotalACCurrentPhase3 : DINT;
|
||||||
|
|
||||||
|
// Addr: 11.027
|
||||||
|
// Unit: W
|
||||||
|
diSetpointActivePowerMirror : DINT;
|
||||||
|
|
||||||
|
// Addr: 11.028
|
||||||
|
rSetpointCosPhiMirror : REAL; // 32 bit
|
||||||
|
|
||||||
|
// Addr: 11.030
|
||||||
|
// Unit: W
|
||||||
|
diCurrentActivePower : DINT;
|
||||||
|
|
||||||
|
// Addr: 11.031
|
||||||
|
// Unit: var
|
||||||
|
diCurrentReactivePower : DINT;
|
||||||
|
|
||||||
|
// Addr: 11.032
|
||||||
|
udiLifeMessage : UDINT;
|
||||||
|
|
||||||
|
// Addr: 11.033
|
||||||
|
lwWarningBitmap : LWORD;
|
||||||
|
|
||||||
|
// Addr: 11.035
|
||||||
|
lwErrorBitmap : LWORD;
|
||||||
|
|
||||||
|
// Addr: 12.000
|
||||||
|
// Unit: W
|
||||||
|
diSetpointActivePower : DINT;
|
||||||
|
|
||||||
|
// Addr: 12.001
|
||||||
|
rSetpointCosPhi : REAL;
|
||||||
|
|
||||||
|
// Addr: 12.003
|
||||||
|
eReactivePowerType : E_REACTIVE_POWER_TYPE;
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
14
PLC/DUTs/ST_MODULE_HMI_INTERFACE.TcDUT
Normal file
14
PLC/DUTs/ST_MODULE_HMI_INTERFACE.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="ST_MODULE_HMI_INTERFACE" Id="{11e89a54-55b7-4731-b5d2-c1f68fd12879}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_MODULE_HMI_INTERFACE :
|
||||||
|
STRUCT
|
||||||
|
stHMIInterfaceUnit1 : ST_UNIT_HMI_INTERFACE;
|
||||||
|
stHMIInterfaceUnit2 : ST_UNIT_HMI_INTERFACE;
|
||||||
|
stHMIInterfaceUnit3 : ST_UNIT_HMI_INTERFACE;
|
||||||
|
stHMIInterfaceUnit4 : ST_UNIT_HMI_INTERFACE;
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
13
PLC/DUTs/ST_STRING_HMI_INTERFACE.TcDUT
Normal file
13
PLC/DUTs/ST_STRING_HMI_INTERFACE.TcDUT
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="ST_STRING_HMI_INTERFACE" Id="{b74e184a-a1d0-4499-8ac0-7e2226af9a4f}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_STRING_HMI_INTERFACE :
|
||||||
|
STRUCT
|
||||||
|
stHMIInterfaceModule1 : ST_MODULE_HMI_INTERFACE;
|
||||||
|
stHMIInterfaceModule2 : ST_MODULE_HMI_INTERFACE;
|
||||||
|
stHMIInterfaceModule3 : ST_MODULE_HMI_INTERFACE;
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
78
PLC/DUTs/ST_UNIT_CONFIG.TcDUT
Normal file
78
PLC/DUTs/ST_UNIT_CONFIG.TcDUT
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="ST_UNIT_CONFIG" Id="{75a00288-1f08-4f47-846c-fa7c44b2279c}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_UNIT_CONFIG :
|
||||||
|
STRUCT
|
||||||
|
// Pump posolyt
|
||||||
|
// ===================================
|
||||||
|
stConfigPosolytPump : ST_MOTOR_ANALOG_CONFIG;
|
||||||
|
|
||||||
|
|
||||||
|
// Pump negolyt
|
||||||
|
// ===================================
|
||||||
|
stConfigNegolytPump : ST_MOTOR_ANALOG_CONFIG;
|
||||||
|
|
||||||
|
|
||||||
|
// Valves posolyt
|
||||||
|
// ===================================
|
||||||
|
stConfigPosolytValve : ST_ValveConfig;
|
||||||
|
|
||||||
|
|
||||||
|
// Valves negolyt
|
||||||
|
// ===================================
|
||||||
|
stConfigNegolytValve : ST_ValveConfig;
|
||||||
|
|
||||||
|
|
||||||
|
// Pressure sensor posolyt segment inlet
|
||||||
|
//====================================
|
||||||
|
stConfigPosolytPressureSegmentInlet : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLPosolytPressureSegmentInlet : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDPosolytPressureSegmentInlet : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
|
||||||
|
// Pressure sensor negolyt segment inlet
|
||||||
|
//====================================
|
||||||
|
stConfigNegolytPressureSegmentInlet : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLNegolytPressureSegmentInlet : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDNegolytPressureSegmentInlet : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
|
||||||
|
// Pressure sensor posolyt tank inlet
|
||||||
|
//====================================
|
||||||
|
stConfigPosolytPressureTankInlet : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLPosolytPressureTankInlet : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDPosolytPressureTankInlet : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
|
||||||
|
// Pressure sensor posolyt tank inlet
|
||||||
|
//====================================
|
||||||
|
stConfigNegolytPressureTankInlet : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLNegolytPressureTankInlet : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDNegolytPressureTankInlet : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
|
||||||
|
// Temperature sensor posolyt tank inlet
|
||||||
|
//====================================
|
||||||
|
stConfigPosolytTempTankInlet : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLPosolytTempTankInlet : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDPosolytTempTankInlet : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
|
||||||
|
// Temperature sensor negolyt tank inlet
|
||||||
|
//====================================
|
||||||
|
stConfigNegolytTempTankInlet : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLNegolytTempTankInlet : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDNegolytTempTankInlet : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
|
||||||
|
// Voltage segment
|
||||||
|
//====================================
|
||||||
|
stConfigVoltageSegment : ST_ANALOG_IO_CONFIG;
|
||||||
|
stEWLVoltageSegment : ST_ANALOG_EW_LEVELS;
|
||||||
|
stEWDVoltageSegment : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
59
PLC/DUTs/ST_UNIT_HMI_INTERFACE.TcDUT
Normal file
59
PLC/DUTs/ST_UNIT_HMI_INTERFACE.TcDUT
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="ST_UNIT_HMI_INTERFACE" Id="{a46d51f7-c17c-44e4-be59-edb877b3b5dc}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_UNIT_HMI_INTERFACE :
|
||||||
|
STRUCT
|
||||||
|
// Pump posolyt
|
||||||
|
// ===================================
|
||||||
|
stPosolytPump : ST_HMI_ANALOG_MOTOR_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// Pump negolyt
|
||||||
|
// ===================================
|
||||||
|
stNegolytPump : ST_HMI_ANALOG_MOTOR_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// Valve posolyt
|
||||||
|
// ===================================
|
||||||
|
stPosolytValve : ST_HMI_VALVE_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// Valve negolyt
|
||||||
|
// ===================================
|
||||||
|
stNegolytValve : ST_HMI_VALVE_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// Drucksensoren Posolyt
|
||||||
|
//====================================
|
||||||
|
stPosolytPressureSegmentInlet : ST_HMI_ANALOG_VALUE;
|
||||||
|
|
||||||
|
|
||||||
|
// Drucksensoren Negolyt
|
||||||
|
//====================================
|
||||||
|
stNegolytPressureSegmentInlet : ST_HMI_ANALOG_VALUE;
|
||||||
|
|
||||||
|
|
||||||
|
// Temperature sensor posolyt tank inlet
|
||||||
|
//====================================
|
||||||
|
stPosolytTempTankInlet : ST_HMI_ANALOG_VALUE;
|
||||||
|
|
||||||
|
|
||||||
|
// Temperature sensor negolyt tank inlet
|
||||||
|
//====================================
|
||||||
|
stNegolytTempTankInlet : ST_HMI_ANALOG_VALUE;
|
||||||
|
|
||||||
|
|
||||||
|
// Voltage sensors
|
||||||
|
// ===================================
|
||||||
|
stVoltageSegment : ST_HMI_ANALOG_VALUE;
|
||||||
|
|
||||||
|
|
||||||
|
// Aknowledge all alarms button
|
||||||
|
// ===================================
|
||||||
|
stButtonAckAlarms : ST_HMI_CONTROL_BUTTON;
|
||||||
|
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
158
PLC/GVLs/GVL_CONFIG.TcGVL
Normal file
158
PLC/GVLs/GVL_CONFIG.TcGVL
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<GVL Name="GVL_CONFIG" Id="{0773bf51-0237-454d-a970-cfd896054edb}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
VAR_GLOBAL
|
||||||
|
// ===========================
|
||||||
|
// Unit hardware config
|
||||||
|
// ===========================
|
||||||
|
stUnitConfig : ST_UNIT_CONFIG :=
|
||||||
|
(
|
||||||
|
// Pump poslyt segment inlet
|
||||||
|
stConfigPosolytPump :=
|
||||||
|
(
|
||||||
|
rTargetMin := 0.0,
|
||||||
|
rTargetMax := 100.0,
|
||||||
|
timRampUpTime := T#5S,
|
||||||
|
timRampDownTime := T#5S,
|
||||||
|
stAnalogInputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0, sUnit := '%'),
|
||||||
|
stAnalogOutputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0),
|
||||||
|
xHasAnalogFeedback := TRUE,
|
||||||
|
xHasMCBFeedback := TRUE,
|
||||||
|
xHasRepairSwitchFeedback := FALSE
|
||||||
|
),
|
||||||
|
|
||||||
|
// Pump negolyt segment inlet
|
||||||
|
stConfigNegolytPump :=
|
||||||
|
(
|
||||||
|
rTargetMin := 0.0,
|
||||||
|
rTargetMax := 100.0,
|
||||||
|
timRampUpTime := T#5S,
|
||||||
|
timRampDownTime := T#5S,
|
||||||
|
stAnalogInputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0, sUnit := '%'),
|
||||||
|
stAnalogOutputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0),
|
||||||
|
xHasAnalogFeedback := TRUE,
|
||||||
|
xHasMCBFeedback := TRUE,
|
||||||
|
xHasRepairSwitchFeedback := FALSE
|
||||||
|
),
|
||||||
|
|
||||||
|
// Valve posolyt tank outlet
|
||||||
|
stConfigPosolytValve := (timTimeoutOpen := T#10S, timTimeoutClose := T#10S, xHasOpenFeedback := TRUE, xHasClosedFeedback := TRUE),
|
||||||
|
|
||||||
|
// Valve negolyt tank outlet
|
||||||
|
stConfigNegolytValve := (timTimeoutOpen := T#10S, timTimeoutClose := T#10S, xHasOpenFeedback := TRUE, xHasClosedFeedback := TRUE),
|
||||||
|
|
||||||
|
// Pressure posolyt segment inlet
|
||||||
|
stConfigPosolytPressureSegmentInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
|
||||||
|
stEWLPosolytPressureSegmentInlet := (rErrorMin := -500, rWarningMin := -400, rWarningMax := 600, rErrorMax := 700),
|
||||||
|
stEWDPosolytPressureSegmentInlet :=
|
||||||
|
(
|
||||||
|
timHardwareSignalLevelOn := T#0S,
|
||||||
|
timHardwareSignalLevelOff := T#5S,
|
||||||
|
timErrorLowOn := T#1S,
|
||||||
|
timErrorLowOff := T#5S,
|
||||||
|
timWarningLowOn := T#1S,
|
||||||
|
timWarningLowOff := T#5S,
|
||||||
|
timWarningHighOn := T#1S,
|
||||||
|
timWarningHighOff := T#5S,
|
||||||
|
timErrorHighOn := T#1S,
|
||||||
|
timErrorHighOff := T#5S
|
||||||
|
),
|
||||||
|
|
||||||
|
// Pressure negolyt segment inlet
|
||||||
|
stConfigNegolytPressureSegmentInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
|
||||||
|
stEWLNegolytPressureSegmentInlet := (rErrorMin := -500, rWarningMin := -400, rWarningMax := 600, rErrorMax := 700),
|
||||||
|
stEWDNegolytPressureSegmentInlet :=
|
||||||
|
(
|
||||||
|
timHardwareSignalLevelOn := T#0S,
|
||||||
|
timHardwareSignalLevelOff := T#5S,
|
||||||
|
timErrorLowOn := T#1S,
|
||||||
|
timErrorLowOff := T#5S,
|
||||||
|
timWarningLowOn := T#1S,
|
||||||
|
timWarningLowOff := T#5S,
|
||||||
|
timWarningHighOn := T#1S,
|
||||||
|
timWarningHighOff := T#5S,
|
||||||
|
timErrorHighOn := T#1S,
|
||||||
|
timErrorHighOff := T#5S
|
||||||
|
),
|
||||||
|
|
||||||
|
// Temperature sensor posolyt tank inlet
|
||||||
|
stConfigPosolytTempTankInlet := (iAIMax := 32767, iAIMin := -32768, rPVMax := 3276.7, rPVMin := -3276.8, sUnit := '°C'),
|
||||||
|
stEWLPosolytTempTankInlet := (rErrorMin := -10, rWarningMin := -5, rWarningMax := 45, rErrorMax := 60),
|
||||||
|
stEWDPosolytTempTankInlet :=
|
||||||
|
(
|
||||||
|
timHardwareSignalLevelOn := T#0S,
|
||||||
|
timHardwareSignalLevelOff := T#5S,
|
||||||
|
timErrorLowOn := T#5S,
|
||||||
|
timErrorLowOff := T#5S,
|
||||||
|
timWarningLowOn := T#5S,
|
||||||
|
timWarningLowOff := T#5S,
|
||||||
|
timWarningHighOn := T#5S,
|
||||||
|
timWarningHighOff := T#5S,
|
||||||
|
timErrorHighOn := T#5S,
|
||||||
|
timErrorHighOff := T#5S
|
||||||
|
),
|
||||||
|
|
||||||
|
// Temperature sensor negolyt tank inlet
|
||||||
|
stConfigNegolytTempTankInlet := (iAIMax := 32767, iAIMin := -32768, rPVMax := 3276.7, rPVMin := -3276.8, sUnit := '°C'),
|
||||||
|
stEWLNegolytTempTankInlet := (rErrorMin := -10, rWarningMin := -5, rWarningMax := 45, rErrorMax := 60),
|
||||||
|
stEWDNegolytTempTankInlet :=
|
||||||
|
(
|
||||||
|
timHardwareSignalLevelOn := T#0S,
|
||||||
|
timHardwareSignalLevelOff := T#5S,
|
||||||
|
timErrorLowOn := T#5S,
|
||||||
|
timErrorLowOff := T#5S,
|
||||||
|
timWarningLowOn := T#5S,
|
||||||
|
timWarningLowOff := T#5S,
|
||||||
|
timWarningHighOn := T#5S,
|
||||||
|
timWarningHighOff := T#5S,
|
||||||
|
timErrorHighOn := T#5S,
|
||||||
|
timErrorHighOff := T#5S
|
||||||
|
),
|
||||||
|
|
||||||
|
// Voltage sensor segment
|
||||||
|
// EL3214-0090 CoE Verzeichnis
|
||||||
|
// Index 0x80n0:02 "Presentation" = Signed(0) -> Resolution 1/10°C
|
||||||
|
// Index 0x80n0:19 "RTD Element" = PT100(0)
|
||||||
|
stConfigVoltageSegment := (iAIMax := 32767, iAIMin := 0, rPVMax := 150, rPVMin := 0, sUnit := 'V'),
|
||||||
|
stEWLVoltageSegment := (rErrorMin := 50, rWarningMin := 55, rWarningMax := 75, rErrorMax := 80),
|
||||||
|
stEWDVoltageSegment :=
|
||||||
|
(
|
||||||
|
timHardwareSignalLevelOn := T#0S,
|
||||||
|
timHardwareSignalLevelOff := T#5S,
|
||||||
|
timErrorLowOn := T#2S,
|
||||||
|
timErrorLowOff := T#5S,
|
||||||
|
timWarningLowOn := T#2S,
|
||||||
|
timWarningLowOff := T#5S,
|
||||||
|
timWarningHighOn := T#2S,
|
||||||
|
timWarningHighOff := T#5S,
|
||||||
|
timErrorHighOn := T#2S,
|
||||||
|
timErrorHighOff := T#5S
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// ===========================
|
||||||
|
// General settings
|
||||||
|
// ===========================
|
||||||
|
|
||||||
|
// Pump on power
|
||||||
|
rPumpPosolytOnPower : REAL := 70.0;
|
||||||
|
rPumpNegolytOnPower : REAL := 70.0;
|
||||||
|
|
||||||
|
// Unit voltage pumps shutoff threshold
|
||||||
|
rPumpshutoffThreshold : REAL := 25.0;
|
||||||
|
|
||||||
|
// Minimum unit voltage for startup
|
||||||
|
rMinimumUnitVoltage : REAL := 49.0;
|
||||||
|
|
||||||
|
// Maximum absolute voltage difference
|
||||||
|
// between units in the same module
|
||||||
|
rMaxAbsDiffVoltageUnitsOnModule : REAL := 5.0;
|
||||||
|
|
||||||
|
// Maximum absolute voltage difference
|
||||||
|
// between Modules
|
||||||
|
rMaxAbsDiffVoltageModulesInString : REAL := 10.0;
|
||||||
|
|
||||||
|
END_VAR]]></Declaration>
|
||||||
|
</GVL>
|
||||||
|
</TcPlcObject>
|
||||||
21
PLC/GVLs/GVL_MODBUS.TcGVL
Normal file
21
PLC/GVLs/GVL_MODBUS.TcGVL
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<GVL Name="GVL_MODBUS" Id="{913a9222-1338-4c08-b758-91c1bd26dcd9}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
VAR_GLOBAL
|
||||||
|
// Modbus interface to customer EMS
|
||||||
|
stModbusEMSComm : ST_EMS_MODBUS_INTERFACE := (
|
||||||
|
sManufacturer := 'cmblu energy ag',
|
||||||
|
sModelname := 'all liquid',
|
||||||
|
sSerialnumber := '202312151643',
|
||||||
|
sBMSVersion := '0.8.0',
|
||||||
|
uiTotalParallelMembers := 2);
|
||||||
|
|
||||||
|
// Modbus default config
|
||||||
|
mb_Input_Coils : ARRAY [0..255] OF BOOL;
|
||||||
|
mb_Output_Coils : ARRAY [0..255] OF BOOL;
|
||||||
|
mb_Input_Registers : ARRAY [0..255] OF WORD;
|
||||||
|
mb_Output_Registers : ARRAY [0..255] OF WORD;
|
||||||
|
END_VAR]]></Declaration>
|
||||||
|
</GVL>
|
||||||
|
</TcPlcObject>
|
||||||
9
PLC/GVLs/GVL_SCADA.TcGVL
Normal file
9
PLC/GVLs/GVL_SCADA.TcGVL
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<GVL Name="GVL_SCADA" Id="{8186ff04-764f-4b24-8a6b-d0a44d528e6f}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
VAR_GLOBAL
|
||||||
|
stHMIInterfaces : ARRAY [0..3] OF ST_UNIT_HMI_INTERFACE;
|
||||||
|
END_VAR]]></Declaration>
|
||||||
|
</GVL>
|
||||||
|
</TcPlcObject>
|
||||||
150
PLC/PLC.plcproj
Normal file
150
PLC/PLC.plcproj
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<FileVersion>1.0.0.0</FileVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{9ae64910-5eb2-4866-93fd-efe059c38c36}</ProjectGuid>
|
||||||
|
<SubObjectsSortedByName>True</SubObjectsSortedByName>
|
||||||
|
<DownloadApplicationInfo>true</DownloadApplicationInfo>
|
||||||
|
<WriteProductVersion>true</WriteProductVersion>
|
||||||
|
<GenerateTpy>false</GenerateTpy>
|
||||||
|
<Name>PLC</Name>
|
||||||
|
<ProgramVersion>3.1.4024.0</ProgramVersion>
|
||||||
|
<Application>{afd0b275-de2f-4006-ab0f-6826ccfce7be}</Application>
|
||||||
|
<TypeSystem>{18a2eab9-0077-4cea-9d3b-9a168bdf0814}</TypeSystem>
|
||||||
|
<Implicit_Task_Info>{6e35f35d-280b-4da2-9c5b-fc35ab6da425}</Implicit_Task_Info>
|
||||||
|
<Implicit_KindOfTask>{580e4ecb-3f35-4f4d-bc2a-d29ea11be950}</Implicit_KindOfTask>
|
||||||
|
<Implicit_Jitter_Distribution>{8bf9a0d5-d7ca-4ab3-b8e1-6723c8a1acbc}</Implicit_Jitter_Distribution>
|
||||||
|
<LibraryReferences>{106b5199-0018-4919-a06c-2ea0dd3e1070}</LibraryReferences>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="DUTs\E_BATTERY_STATUS.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\E_CHARGE_STATUS.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\E_REACTIVE_POWER_TYPE.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\ST_EMS_MODBUS_INTERFACE.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\ST_MODULE_HMI_INTERFACE.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\ST_STRING_HMI_INTERFACE.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\ST_UNIT_HMI_INTERFACE.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DUTs\ST_UNIT_CONFIG.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="GVLs\GVL_CONFIG.TcGVL">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
<LinkAlways>true</LinkAlways>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="GVLs\GVL_MODBUS.TcGVL">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
<LinkAlways>true</LinkAlways>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="GVLs\GVL_SCADA.TcGVL">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
<LinkAlways>true</LinkAlways>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PlcTask.TcTTO">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\FB_Module.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\FB_String.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\FB_Unit.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\MAIN.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Sunspec\FB_PowerSupplySunspec.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Sunspec\U_SUNSPEC_ERROR.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="DUTs" />
|
||||||
|
<Folder Include="GVLs" />
|
||||||
|
<Folder Include="POUs\Sunspec" />
|
||||||
|
<Folder Include="VISUs" />
|
||||||
|
<Folder Include="POUs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PlaceholderReference Include="BaseLib">
|
||||||
|
<DefaultResolution>BaseLib, * (cmblu)</DefaultResolution>
|
||||||
|
<Namespace>BaseLib</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc2_ModbusSrv">
|
||||||
|
<DefaultResolution>Tc2_ModbusSrv, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc2_ModbusSrv</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc2_Standard">
|
||||||
|
<DefaultResolution>Tc2_Standard, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc2_Standard</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc2_System">
|
||||||
|
<DefaultResolution>Tc2_System, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc2_System</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc3_EventLogger">
|
||||||
|
<DefaultResolution>Tc3_EventLogger, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc3_Module">
|
||||||
|
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc3_Module</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="PLC.tmc">
|
||||||
|
<SubType>Content</SubType>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<PlcProjectOptions>
|
||||||
|
<XmlArchive>
|
||||||
|
<Data>
|
||||||
|
<o xml:space="preserve" t="OptionKey">
|
||||||
|
<v n="Name">"<ProjectRoot>"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||||
|
<v>{40450F57-0AA3-4216-96F3-5444ECB29763}</v>
|
||||||
|
<o>
|
||||||
|
<v n="Name">"{40450F57-0AA3-4216-96F3-5444ECB29763}"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" />
|
||||||
|
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||||
|
<v>ActiveVisuProfile</v>
|
||||||
|
<v>IR0whWr8bwfwBwAAiD2qpQAAAABVAgAA37x72QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA=</v>
|
||||||
|
</d>
|
||||||
|
</o>
|
||||||
|
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
||||||
|
<o>
|
||||||
|
<v n="Name">"{192FAD59-8248-4824-A8DE-9177C94C195A}"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" />
|
||||||
|
<d n="Values" t="Hashtable" />
|
||||||
|
</o>
|
||||||
|
</d>
|
||||||
|
<d n="Values" t="Hashtable" />
|
||||||
|
</o>
|
||||||
|
</Data>
|
||||||
|
<TypeList>
|
||||||
|
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||||
|
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||||
|
<Type n="String">System.String</Type>
|
||||||
|
</TypeList>
|
||||||
|
</XmlArchive>
|
||||||
|
</PlcProjectOptions>
|
||||||
|
</ProjectExtensions>
|
||||||
|
</Project>
|
||||||
523
PLC/PLC.tmc
Normal file
523
PLC/PLC.tmc
Normal file
File diff suppressed because one or more lines are too long
155
PLC/POUs/FB_Module.TcPOU
Normal file
155
PLC/POUs/FB_Module.TcPOU
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_Module" Id="{87be924f-018d-4c09-997b-f0c0054414cc}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_Module
|
||||||
|
VAR_INPUT
|
||||||
|
// Emergency stop ok
|
||||||
|
xEmergencyStopOk : BOOL;
|
||||||
|
|
||||||
|
// HMI Interface
|
||||||
|
stHMIInterface : REFERENCE TO ST_MODULE_HMI_INTERFACE;
|
||||||
|
|
||||||
|
// Release alarms
|
||||||
|
xReleaseErrors : BOOL;
|
||||||
|
|
||||||
|
// Release analog io limit errors
|
||||||
|
xReleaseLimitErrors : BOOL;
|
||||||
|
|
||||||
|
// Input to confirm all errors
|
||||||
|
xConfirmAlarms : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
// One unit has an error
|
||||||
|
xError : BOOL;
|
||||||
|
|
||||||
|
// One unit has a warning
|
||||||
|
xWarning : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
_fbUnit1 : FB_Unit(CONCAT(_sName, ' Unit 1'));
|
||||||
|
_fbUnit2 : FB_Unit(CONCAT(_sName, ' Unit 2'));
|
||||||
|
_fbUnit3 : FB_Unit(CONCAT(_sName, ' Unit 3'));
|
||||||
|
_fbUnit4 : FB_Unit(CONCAT(_sName, ' Unit 4'));
|
||||||
|
|
||||||
|
// Module name
|
||||||
|
_sName : STRING;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Reset error and warning flag
|
||||||
|
xError := FALSE;
|
||||||
|
xWarning := FALSE;
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Unit 1
|
||||||
|
// ===============================
|
||||||
|
_fbUnit1(
|
||||||
|
stUnitConfig:= GVL_CONFIG.stUnitConfig,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceUnit1,
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
rSetpointPosolytPumpInlet:= GVL_CONFIG.rPumpPosolytOnPower,
|
||||||
|
rSetpointNegolytPumpInlet:= GVL_CONFIG.rPumpNegolytOnPower,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
_xWarningConfirmPending=> );
|
||||||
|
|
||||||
|
IF _fbUnit1.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbUnit1.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Unit 2
|
||||||
|
// ===============================
|
||||||
|
_fbUnit2(
|
||||||
|
stUnitConfig:= GVL_CONFIG.stUnitConfig,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceUnit2,
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
rSetpointPosolytPumpInlet:= GVL_CONFIG.rPumpPosolytOnPower,
|
||||||
|
rSetpointNegolytPumpInlet:= GVL_CONFIG.rPumpNegolytOnPower,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
_xWarningConfirmPending=> );
|
||||||
|
|
||||||
|
IF _fbUnit2.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbUnit2.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Unit 3
|
||||||
|
// ===============================
|
||||||
|
_fbUnit3(
|
||||||
|
stUnitConfig:= GVL_CONFIG.stUnitConfig,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceUnit3,
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
rSetpointPosolytPumpInlet:= GVL_CONFIG.rPumpPosolytOnPower,
|
||||||
|
rSetpointNegolytPumpInlet:= GVL_CONFIG.rPumpNegolytOnPower,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
_xWarningConfirmPending=> );
|
||||||
|
|
||||||
|
IF _fbUnit3.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbUnit3.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Unit 4
|
||||||
|
// ===============================
|
||||||
|
_fbUnit4(
|
||||||
|
stUnitConfig:= GVL_CONFIG.stUnitConfig,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceUnit4,
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
rSetpointPosolytPumpInlet:= GVL_CONFIG.rPumpPosolytOnPower,
|
||||||
|
rSetpointNegolytPumpInlet:= GVL_CONFIG.rPumpNegolytOnPower,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
_xWarningConfirmPending=> );
|
||||||
|
|
||||||
|
IF _fbUnit4.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbUnit4.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<Method Name="FB_init" Id="{369c1d27-76e4-45f8-9dbe-03524d3389df}">
|
||||||
|
<Declaration><![CDATA[METHOD FB_init : BOOL
|
||||||
|
VAR_INPUT
|
||||||
|
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
|
||||||
|
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
|
||||||
|
|
||||||
|
sName : STRING;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_sName := sName;]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Method>
|
||||||
|
<LineIds Name="FB_Module">
|
||||||
|
<LineId Id="248" Count="92" />
|
||||||
|
<LineId Id="188" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
<LineIds Name="FB_Module.FB_init">
|
||||||
|
<LineId Id="7" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
124
PLC/POUs/FB_String.TcPOU
Normal file
124
PLC/POUs/FB_String.TcPOU
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_String" Id="{46501225-f446-4674-bfed-3be64273e576}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_String
|
||||||
|
VAR_INPUT
|
||||||
|
// Module 1 HMI interface
|
||||||
|
stHMIInterface : ST_STRING_HMI_INTERFACE;
|
||||||
|
|
||||||
|
// Emergency stop ok
|
||||||
|
xEmergencyStopOk : BOOL;
|
||||||
|
|
||||||
|
// Release alarms
|
||||||
|
xReleaseErrors : BOOL;
|
||||||
|
|
||||||
|
// Release analog io limit errors
|
||||||
|
xReleaseLimitErrors : BOOL;
|
||||||
|
|
||||||
|
// Input to confirm all errors
|
||||||
|
xConfirmAlarms : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
xError : BOOL;
|
||||||
|
xWarning : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
_fbModule1 : FB_Module(CONCAT(_sName, 'Module 1'));
|
||||||
|
_fbModule2 : FB_Module(CONCAT(_sName, 'Module 2'));
|
||||||
|
_fbModule3 : FB_Module(CONCAT(_sName, 'Module 3'));
|
||||||
|
|
||||||
|
// String name
|
||||||
|
_sName : STRING;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// ===============================
|
||||||
|
// Module 1
|
||||||
|
// ===============================
|
||||||
|
_fbModule1(
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceModule1,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms);
|
||||||
|
|
||||||
|
IF _fbModule1.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbModule1.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Module 2
|
||||||
|
// ===============================
|
||||||
|
_fbModule2(
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceModule2,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms);
|
||||||
|
|
||||||
|
IF _fbModule2.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbModule2.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Module 3
|
||||||
|
// ===============================
|
||||||
|
_fbModule3(
|
||||||
|
xEmergencyStopOk:= xEmergencyStopOk,
|
||||||
|
stHMIInterface:= stHMIInterface.stHMIInterfaceModule3,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms);
|
||||||
|
|
||||||
|
IF _fbModule3.xWarning THEN
|
||||||
|
xWarning := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _fbModule3.xError THEN
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<Method Name="FB_init" Id="{9e8494eb-1b40-4be9-91c8-810ecbdf7f0c}">
|
||||||
|
<Declaration><![CDATA[METHOD FB_init : BOOL
|
||||||
|
VAR_INPUT
|
||||||
|
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
|
||||||
|
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
|
||||||
|
|
||||||
|
sName : STRING;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_sName := sName;]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Method>
|
||||||
|
<LineIds Name="FB_String">
|
||||||
|
<LineId Id="69" Count="0" />
|
||||||
|
<LineId Id="67" Count="1" />
|
||||||
|
<LineId Id="47" Count="1" />
|
||||||
|
<LineId Id="50" Count="3" />
|
||||||
|
<LineId Id="58" Count="0" />
|
||||||
|
<LineId Id="62" Count="0" />
|
||||||
|
<LineId Id="64" Count="0" />
|
||||||
|
<LineId Id="66" Count="0" />
|
||||||
|
<LineId Id="63" Count="0" />
|
||||||
|
<LineId Id="59" Count="2" />
|
||||||
|
<LineId Id="71" Count="17" />
|
||||||
|
<LineId Id="70" Count="0" />
|
||||||
|
<LineId Id="90" Count="17" />
|
||||||
|
<LineId Id="89" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
<LineIds Name="FB_String.FB_init">
|
||||||
|
<LineId Id="7" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
535
PLC/POUs/FB_Unit.TcPOU
Normal file
535
PLC/POUs/FB_Unit.TcPOU
Normal file
@@ -0,0 +1,535 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_Unit" Id="{e9bb815b-eb46-4920-800d-910484e58b22}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_Unit
|
||||||
|
VAR_INPUT
|
||||||
|
// Unit configuration
|
||||||
|
stUnitConfig : REFERENCE TO ST_UNIT_CONFIG;
|
||||||
|
|
||||||
|
// HMI interface
|
||||||
|
stHMIInterface : REFERENCE TO ST_UNIT_HMI_INTERFACE;
|
||||||
|
|
||||||
|
// Start unit
|
||||||
|
xEnable : BOOL;
|
||||||
|
|
||||||
|
// Emergency stop ok
|
||||||
|
xEmergencyStopOk : BOOL;
|
||||||
|
|
||||||
|
// Setpoint posolyt pump inlet
|
||||||
|
rSetpointPosolytPumpInlet : REAL;
|
||||||
|
|
||||||
|
// Setpoint negolyt pump inlet
|
||||||
|
rSetpointNegolytPumpInlet : REAL;
|
||||||
|
|
||||||
|
// Release alarms
|
||||||
|
xReleaseErrors : BOOL;
|
||||||
|
|
||||||
|
// Release analog io limit errors
|
||||||
|
xReleaseLimitErrors : BOOL;
|
||||||
|
|
||||||
|
// Input to confirm all errors
|
||||||
|
xConfirmAlarms : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
// Unit ready
|
||||||
|
xReady : BOOL;
|
||||||
|
|
||||||
|
// Error active
|
||||||
|
xError : BOOL;
|
||||||
|
|
||||||
|
// Warning active
|
||||||
|
xWarning : BOOL;
|
||||||
|
|
||||||
|
// Warning confirmation still pending
|
||||||
|
_xWarningConfirmPending : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
// Check unit condition after some time during startup
|
||||||
|
_timUnitStartupWaitTime : TIME := T#20S;
|
||||||
|
|
||||||
|
// Valves posolyt
|
||||||
|
_fbPosolytValveTankOutlet : FB_Valve('Posolyt tank outlet');
|
||||||
|
|
||||||
|
// Valves negolyt
|
||||||
|
_fbNegolytValveTankOutlet : FB_Valve('Negolyt tank outlet');
|
||||||
|
|
||||||
|
// Pumps posolyt
|
||||||
|
_fbPosolytPumpInlet : FB_MotorAnalog('Posolyt segment inlet');
|
||||||
|
|
||||||
|
// Pumps negolyt
|
||||||
|
_fbNegolytPumpInlet : FB_MotorAnalog('Negolyt segment inlet');
|
||||||
|
|
||||||
|
// Pressure sensors posolyt
|
||||||
|
_fbPressurePosolytSegmentInlet : FB_AnalogInput('P1_P');
|
||||||
|
_fbPressurePosolytTankInlet : FB_AnalogInput('P3_P');
|
||||||
|
_fbPressurePosolytTankOutlet : FB_AnalogInput('P4_P');
|
||||||
|
|
||||||
|
// Pressure sensors negolyt
|
||||||
|
_fbPressureNegolytSegmentInlet : FB_AnalogInput('P1_N');
|
||||||
|
_fbPressureNegolytTankInlet : FB_AnalogInput('P3_N');
|
||||||
|
_fbPressureNegolytTankOutlet : FB_AnalogInput('P4_N');
|
||||||
|
|
||||||
|
// Unit voltage
|
||||||
|
_fbVoltageSegment : FB_AnalogInput('Voltage');
|
||||||
|
|
||||||
|
// Valve posolyt tank outlet interlocks
|
||||||
|
_stPosolytValveTankOutletPIntlk : T_INTERLOCK;
|
||||||
|
_stPosolytValveTankOutletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0000;
|
||||||
|
|
||||||
|
_stPosolytValveTankOutletSIntlk : T_INTERLOCK;
|
||||||
|
_stPosolytValveTankOutletSIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0011;
|
||||||
|
|
||||||
|
// Valve negolyt tank outlet interlocks
|
||||||
|
_stNegolytValveTankOutletPIntlk : T_INTERLOCK;
|
||||||
|
_stNegolytValveTankOutletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0000;
|
||||||
|
|
||||||
|
_stNegolytValveTankOutletSIntlk : T_INTERLOCK;
|
||||||
|
_stNegolytValveTankOutletSIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0011;
|
||||||
|
|
||||||
|
// Pump posolyt inlet interlocks
|
||||||
|
_stPosolytPumpInletPIntlk : T_INTERLOCK;
|
||||||
|
_stPosolytPumpInletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0001;
|
||||||
|
_stPosolytPumpInletSIntlk : T_INTERLOCK;
|
||||||
|
_stPosolytPumpInletSIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0011;
|
||||||
|
|
||||||
|
// Pump negolyt inlet interlocks
|
||||||
|
_stNegolytPumpInletPIntlk : T_INTERLOCK;
|
||||||
|
_stNegolytPumpInletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0001;
|
||||||
|
_stNegolytPumpInletSIntlk : T_INTERLOCK;
|
||||||
|
_stNegolytPumpInletSIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0011;
|
||||||
|
|
||||||
|
// Error active
|
||||||
|
_xErrorActive : BOOL;
|
||||||
|
|
||||||
|
// Warning active
|
||||||
|
_xWarningActive : BOOL;
|
||||||
|
|
||||||
|
// Current state
|
||||||
|
_iState: INT;
|
||||||
|
|
||||||
|
// All components in automatic mode
|
||||||
|
_xAllComponentsInAutomatic : BOOL;
|
||||||
|
|
||||||
|
// Not all components in automatic mode alarm
|
||||||
|
_fbNotAllAutomaticAlarm : FB_TcAlarm;
|
||||||
|
|
||||||
|
// Unit name
|
||||||
|
_sName : STRING;
|
||||||
|
|
||||||
|
// Unit startup check timer
|
||||||
|
_tonStartupCheck : TON;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Reset error active
|
||||||
|
_xErrorActive := FALSE;
|
||||||
|
|
||||||
|
// Reset warning active
|
||||||
|
_xWarningActive := FALSE;
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Valve posolyt tank outlet
|
||||||
|
// ===============================
|
||||||
|
|
||||||
|
// Safety Interlocks
|
||||||
|
stHMIInterface.stPosolytValve.stInterlock.asSafetyINTLKName[0] := 'Emergency stop ok';
|
||||||
|
_stPosolytValveTankOutletSIntlk.0 := xEmergencyStopOk;
|
||||||
|
|
||||||
|
// Valve fb
|
||||||
|
_fbPosolytValveTankOutlet(
|
||||||
|
xReleaseManualMode:= TRUE,
|
||||||
|
wProcessINTLK:= _stPosolytValveTankOutletPIntlk,
|
||||||
|
wProcessINTLKUsed:= _stPosolytValveTankOutletPIntlkUsed,
|
||||||
|
wSafetyINTLK:= _stPosolytValveTankOutletSIntlk,
|
||||||
|
wSafetyINTLKUsed:= _stPosolytValveTankOutletSIntlkUsed,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
stValveConfig:= stUnitConfig.stConfigPosolytValve,
|
||||||
|
stHMIInterface:= stHMIInterface.stPosolytValve);
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbPosolytValveTankOutlet.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Valve negolyt tank outlet
|
||||||
|
// ===============================
|
||||||
|
|
||||||
|
// Safety Interlocks
|
||||||
|
stHMIInterface.stNegolytValve.stInterlock.asSafetyINTLKName[0] := 'Emergency stop ok';
|
||||||
|
_stNegolytValveTankOutletSIntlk.0 := xEmergencyStopOk;
|
||||||
|
|
||||||
|
// Valve fb
|
||||||
|
_fbNegolytValveTankOutlet(
|
||||||
|
xReleaseManualMode:= TRUE,
|
||||||
|
wProcessINTLK:= _stNegolytValveTankOutletPIntlk,
|
||||||
|
wProcessINTLKUsed:= _stNegolytValveTankOutletPIntlkUsed,
|
||||||
|
wSafetyINTLK:= _stNegolytValveTankOutletSIntlk,
|
||||||
|
wSafetyINTLKUsed:= _stNegolytValveTankOutletSIntlkUsed,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
stValveConfig:= stUnitConfig.stConfigNegolytValve,
|
||||||
|
stHMIInterface:= stHMIInterface.stNegolytValve);
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbNegolytValveTankOutlet.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Pump posolyt segment inlet
|
||||||
|
// ===============================
|
||||||
|
|
||||||
|
// Safety Interlocks
|
||||||
|
stHMIInterface.stPosolytPump.stInterlock.asSafetyINTLKName[0] := 'Emergency stop ok';
|
||||||
|
_stPosolytPumpInletSIntlk.0 := xEmergencyStopOk;
|
||||||
|
|
||||||
|
// Process interlocks
|
||||||
|
stHMIInterface.stPosolytPump.stInterlock.asProcessINTLKName[0] := 'At least one valve is open';
|
||||||
|
_stPosolytPumpInletPIntlk.0 := _fbPosolytValveTankOutlet.IsOpen;
|
||||||
|
|
||||||
|
|
||||||
|
// Valve fb
|
||||||
|
_fbPosolytPumpInlet(
|
||||||
|
xReleaseManualMode:= TRUE,
|
||||||
|
wProcessINTLK:= _stPosolytPumpInletPIntlk,
|
||||||
|
wProcessINTLKUsed:= _stPosolytPumpInletPIntlkUsed,
|
||||||
|
wSafetyINTLK:= _stPosolytPumpInletSIntlk,
|
||||||
|
wSafetyINTLKUsed:= _stPosolytPumpInletSIntlkUsed,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
rSPautomatic:= rSetpointPosolytPumpInlet,
|
||||||
|
xReleaseAnalogInLimitErrors:= xReleaseLimitErrors,
|
||||||
|
stMotorAnalogConfig:= stUnitConfig.stConfigPosolytPump,
|
||||||
|
stHMIInterface:= stHMIInterface.stPosolytPump,
|
||||||
|
xWarning=> );
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbPosolytPumpInlet.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Set warning if fb has warning
|
||||||
|
IF _fbPosolytPumpInlet.xWarning THEN
|
||||||
|
_xWarningActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Pump negolyt segment inlet
|
||||||
|
// ===============================
|
||||||
|
|
||||||
|
// Safety Interlocks
|
||||||
|
stHMIInterface.stNegolytPump.stInterlock.asSafetyINTLKName[0] := 'Emergency stop ok';
|
||||||
|
_stNegolytPumpInletSIntlk.0 := xEmergencyStopOk;
|
||||||
|
|
||||||
|
// Process interlocks
|
||||||
|
stHMIInterface.stNegolytPump.stInterlock.asProcessINTLKName[0] := 'At least one valve is open';
|
||||||
|
_stNegolytPumpInletPIntlk.0 := _fbNegolytValveTankOutlet.IsOpen;
|
||||||
|
|
||||||
|
|
||||||
|
// Valve fb
|
||||||
|
_fbNegolytPumpInlet(
|
||||||
|
xReleaseManualMode:= TRUE,
|
||||||
|
wProcessINTLK:= _stNegolytPumpInletPIntlk,
|
||||||
|
wProcessINTLKUsed:= _stNegolytPumpInletPIntlkUsed,
|
||||||
|
wSafetyINTLK:= _stNegolytPumpInletSIntlk,
|
||||||
|
wSafetyINTLKUsed:= _stNegolytPumpInletSIntlkUsed,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
rSPautomatic:= rSetpointNegolytPumpInlet,
|
||||||
|
xReleaseAnalogInLimitErrors:= xReleaseLimitErrors,
|
||||||
|
stMotorAnalogConfig:= stUnitConfig.stConfigNegolytPump,
|
||||||
|
stHMIInterface:= stHMIInterface.stNegolytPump,
|
||||||
|
xWarning=> );
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbNegolytPumpInlet.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Set warning if fb has warning
|
||||||
|
IF _fbNegolytPumpInlet.xWarning THEN
|
||||||
|
_xWarningActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Pressure sensors posolyt segment inlet
|
||||||
|
// ===============================
|
||||||
|
_fbPressurePosolytSegmentInlet(
|
||||||
|
stScalingConfig:= stUnitConfig.stConfigPosolytPressureSegmentInlet,
|
||||||
|
stEWConfig:= stUnitConfig.stEWLPosolytPressureSegmentInlet,
|
||||||
|
stEWDelayConfig:= stUnitConfig.stEWDPosolytPressureSegmentInlet,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xReleaseHardwareErrors:= xReleaseErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
stHMIInterface => stHMIInterface.stPosolytPressureSegmentInlet);
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbPressurePosolytSegmentInlet.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Set warning if fb has warning
|
||||||
|
IF _fbPressurePosolytSegmentInlet.xWarning THEN
|
||||||
|
_xWarningActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Pressure sensors negolyt segment inlet
|
||||||
|
// ===============================
|
||||||
|
_fbPressureNegolytSegmentInlet(
|
||||||
|
stScalingConfig:= stUnitConfig.stConfigNegolytPressureSegmentInlet,
|
||||||
|
stEWConfig:= stUnitConfig.stEWLNegolytPressureSegmentInlet,
|
||||||
|
stEWDelayConfig:= stUnitConfig.stEWDNegolytPressureSegmentInlet,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xReleaseHardwareErrors:= xReleaseErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
stHMIInterface => stHMIInterface.stNegolytPressureSegmentInlet);
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbPressureNegolytSegmentInlet.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Set warning if fb has warning
|
||||||
|
IF _fbPressureNegolytSegmentInlet.xWarning THEN
|
||||||
|
_xWarningActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Voltage segment
|
||||||
|
// ===============================
|
||||||
|
_fbVoltageSegment(
|
||||||
|
stScalingConfig:= ,
|
||||||
|
stEWConfig:= ,
|
||||||
|
stEWDelayConfig:= ,
|
||||||
|
xReleaseErrors:= xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= xReleaseLimitErrors,
|
||||||
|
xReleaseHardwareErrors:= xReleaseErrors,
|
||||||
|
xConfirmAlarms:= xConfirmAlarms,
|
||||||
|
stHMIInterface=> stHMIInterface.stVoltageSegment);
|
||||||
|
|
||||||
|
// Set error active if fb has error
|
||||||
|
IF _fbVoltageSegment.xError THEN
|
||||||
|
_xErrorActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Set warning if fb has warning
|
||||||
|
IF _fbVoltageSegment.xWarning THEN
|
||||||
|
_xWarningActive := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Check if all components are in automatic
|
||||||
|
// ===============================
|
||||||
|
_xAllComponentsInAutomatic := _fbPosolytValveTankOutlet.IsInAutomaticMode
|
||||||
|
AND _fbNegolytValveTankOutlet.IsInAutomaticMode
|
||||||
|
AND _fbPosolytPumpInlet.IsInAutomaticMode
|
||||||
|
AND _fbNegolytPumpInlet.IsInAutomaticMode;
|
||||||
|
|
||||||
|
// Raise warning
|
||||||
|
IF NOT _fbNotAllAutomaticAlarm.bRaised AND (NOT _xAllComponentsInAutomatic) THEN
|
||||||
|
_fbNotAllAutomaticAlarm.Raise(0);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Clear warning and reset
|
||||||
|
IF _fbNotAllAutomaticAlarm.bRaised AND _xAllComponentsInAutomatic THEN
|
||||||
|
_fbNotAllAutomaticAlarm.Clear(0, TRUE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Run state machine for startup and shutdown
|
||||||
|
// ===============================
|
||||||
|
CASE _iState OF
|
||||||
|
0: // Off
|
||||||
|
IF xEnable AND _xAllComponentsInAutomatic AND (NOT _xErrorActive) THEN
|
||||||
|
_iState := 10;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
10: // Open all valves
|
||||||
|
_fbPosolytValveTankOutlet.ReqAutomaticOpen();
|
||||||
|
_fbNegolytValveTankOutlet.ReqAutomaticOpen();
|
||||||
|
_iState := 15;
|
||||||
|
|
||||||
|
15: // Wait for all valves to be open
|
||||||
|
IF _fbPosolytValveTankOutlet.IsOpen AND _fbNegolytValveTankOutlet.IsOpen THEN
|
||||||
|
IF NOT _fbPosolytValveTankOutlet.xError AND _fbNegolytValveTankOutlet.xError THEN
|
||||||
|
_iState := 20;
|
||||||
|
END_IF
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// If enable signal is lost, or there is an error, goto shutdown
|
||||||
|
IF (NOT xEnable) OR _xErrorActive THEN
|
||||||
|
_iState := 40;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
20: // Start pumps
|
||||||
|
_fbPosolytPumpInlet.ReqAutomaticStart();
|
||||||
|
_fbNegolytPumpInlet.ReqAutomaticStart();
|
||||||
|
_iState := 25;
|
||||||
|
|
||||||
|
25: // Wait for all pumps to run
|
||||||
|
IF _fbPosolytPumpInlet.xInTarget AND _fbNegolytPumpInlet.xInTarget THEN
|
||||||
|
_iState := 30;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// If enable signal is lost, goto shutdown
|
||||||
|
IF (NOT xEnable) OR _xErrorActive THEN
|
||||||
|
_iState := 40;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
30: // Wait some time
|
||||||
|
_tonStartupCheck(In := TRUE, PT := _timUnitStartupWaitTime);
|
||||||
|
|
||||||
|
// After some time, check if all values are ok
|
||||||
|
IF _tonStartupCheck.Q THEN
|
||||||
|
// Check for minimum unit voltage
|
||||||
|
IF _fbVoltageSegment.rScaledValue >= GVL_CONFIG.rMinimumUnitVoltage AND
|
||||||
|
NOT _xErrorActive AND
|
||||||
|
NOT _xWarningActive THEN
|
||||||
|
xReady := TRUE;
|
||||||
|
_iState := 35;
|
||||||
|
ELSE
|
||||||
|
_iState := 40;
|
||||||
|
END_IF
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// If enable signal is lost, goto shutdown
|
||||||
|
IF (NOT xEnable) OR _xErrorActive THEN
|
||||||
|
_iState := 40;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
35: // Unit in enabled state
|
||||||
|
IF (NOT xEnable) OR _xErrorActive THEN
|
||||||
|
_iState := 40;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
40: // Close all valves
|
||||||
|
_fbNegolytValveTankOutlet.ReqAutomaticClose();
|
||||||
|
_fbPosolytValveTankOutlet.ReqAutomaticClose();
|
||||||
|
_iState := 45;
|
||||||
|
|
||||||
|
45: // Wait for valves to be closed
|
||||||
|
IF _fbNegolytValveTankOutlet.IsClosed AND _fbPosolytValveTankOutlet.IsClosed THEN
|
||||||
|
_iState := 50;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// When there is an error trying to close the valves,
|
||||||
|
// dont try to discharge the segment
|
||||||
|
IF _fbNegolytValveTankOutlet.xError OR _fbPosolytValveTankOutlet.xError THEN
|
||||||
|
_iState := 60;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Check for restart condition
|
||||||
|
IF xEnable AND (NOT _xErrorActive) THEN
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
50: // Wait for unit voltage to drop below a certain threshold
|
||||||
|
IF (_fbVoltageSegment.rScaledValue <= GVL_CONFIG.rPumpshutoffThreshold) THEN
|
||||||
|
_iState := 60;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Check for restart condition
|
||||||
|
IF xEnable AND (NOT _xErrorActive) THEN
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
60: // Disable pumps
|
||||||
|
_fbPosolytPumpInlet.ReqAutomaticStop();
|
||||||
|
_fbNegolytPumpInlet.ReqAutomaticStop();
|
||||||
|
_iState := 65;
|
||||||
|
|
||||||
|
65: // Wait for pumps to be stopped
|
||||||
|
IF _fbPosolytPumpInlet.IsStopped AND _fbNegolytPumpInlet.IsStopped THEN
|
||||||
|
IF _xErrorActive THEN
|
||||||
|
_iState := 1000;
|
||||||
|
ELSE
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Check for restart condition
|
||||||
|
IF xEnable AND (NOT _xErrorActive) THEN
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
1000: // Alarm active
|
||||||
|
// Only allow reset when enable is deactivated to avoid an
|
||||||
|
// automatic restart of the unit
|
||||||
|
IF (NOT _xErrorActive) AND (NOT xEnable) THEN
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
END_CASE
|
||||||
|
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Output error and warning flags
|
||||||
|
// ===============================
|
||||||
|
xError := _xErrorActive;
|
||||||
|
xWarning := _xWarningActive;]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<Method Name="FB_init" Id="{08f1cd44-6483-4d20-ab45-d1938e8ec885}">
|
||||||
|
<Declaration><![CDATA[METHOD FB_init : BOOL
|
||||||
|
VAR_INPUT
|
||||||
|
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
|
||||||
|
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
|
||||||
|
|
||||||
|
sName : STRING;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_sName := sName;
|
||||||
|
|
||||||
|
_fbNotAllAutomaticAlarm.CreateEx(TC_EVENTS.General.NotAllCompInAutomatic, bWithConfirmation := FALSE, 0);
|
||||||
|
_fbNotAllAutomaticAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Method>
|
||||||
|
<LineIds Name="FB_Unit">
|
||||||
|
<LineId Id="4232" Count="29" />
|
||||||
|
<LineId Id="4584" Count="0" />
|
||||||
|
<LineId Id="4263" Count="102" />
|
||||||
|
<LineId Id="4619" Count="0" />
|
||||||
|
<LineId Id="4367" Count="46" />
|
||||||
|
<LineId Id="4621" Count="22" />
|
||||||
|
<LineId Id="4620" Count="0" />
|
||||||
|
<LineId Id="4644" Count="1" />
|
||||||
|
<LineId Id="4414" Count="0" />
|
||||||
|
<LineId Id="4647" Count="0" />
|
||||||
|
<LineId Id="4646" Count="0" />
|
||||||
|
<LineId Id="4416" Count="17" />
|
||||||
|
<LineId Id="4444" Count="26" />
|
||||||
|
<LineId Id="4476" Count="33" />
|
||||||
|
<LineId Id="4511" Count="17" />
|
||||||
|
<LineId Id="4653" Count="0" />
|
||||||
|
<LineId Id="4655" Count="2" />
|
||||||
|
<LineId Id="4654" Count="0" />
|
||||||
|
<LineId Id="4529" Count="4" />
|
||||||
|
<LineId Id="4658" Count="0" />
|
||||||
|
<LineId Id="4660" Count="2" />
|
||||||
|
<LineId Id="4659" Count="0" />
|
||||||
|
<LineId Id="4569" Count="0" />
|
||||||
|
<LineId Id="4535" Count="12" />
|
||||||
|
<LineId Id="4663" Count="0" />
|
||||||
|
<LineId Id="4665" Count="2" />
|
||||||
|
<LineId Id="4664" Count="0" />
|
||||||
|
<LineId Id="4548" Count="6" />
|
||||||
|
<LineId Id="4556" Count="6" />
|
||||||
|
<LineId Id="2754" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
<LineIds Name="FB_Unit.FB_init">
|
||||||
|
<LineId Id="11" Count="1" />
|
||||||
|
<LineId Id="7" Count="1" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
28
PLC/POUs/MAIN.TcPOU
Normal file
28
PLC/POUs/MAIN.TcPOU
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="MAIN" Id="{bbd7302c-91ce-4697-9f4b-743f57ca5819}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[PROGRAM MAIN
|
||||||
|
VAR
|
||||||
|
_xEmergencyStopOk AT %I* : BOOL;
|
||||||
|
_xReleaseErrors : BOOL;
|
||||||
|
_xReleaseLimitsErrors : BOOL;
|
||||||
|
_xConfirmAlarms : BOOL;
|
||||||
|
_fbString : FB_String('String 1');
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_fbString(
|
||||||
|
stHMIInterface:= ,
|
||||||
|
xEmergencyStopOk:= _xEmergencyStopOk,
|
||||||
|
xReleaseErrors:= _xReleaseErrors,
|
||||||
|
xReleaseLimitErrors:= _xReleaseLimitsErrors,
|
||||||
|
xConfirmAlarms:= _xConfirmAlarms,
|
||||||
|
xError=> ,
|
||||||
|
xWarning=> );]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="MAIN">
|
||||||
|
<LineId Id="7" Count="6" />
|
||||||
|
<LineId Id="2" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
628
PLC/POUs/Sunspec/FB_PowerSupplySunspec.TcPOU
Normal file
628
PLC/POUs/Sunspec/FB_PowerSupplySunspec.TcPOU
Normal file
@@ -0,0 +1,628 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_PowerSupplySunspec" Id="{a826dd09-442c-45c5-8ae3-9b71f293003c}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_PowerSupplySunspec
|
||||||
|
VAR_INPUT
|
||||||
|
sInverterIPAddr : STRING;
|
||||||
|
xEnable : BOOL;
|
||||||
|
rPower : REAL;
|
||||||
|
xReset : BOOL;
|
||||||
|
rMaxBattPower : REAL := 24_000; // 24kW
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
xCloseDCRelais AT %Q*: BOOL;
|
||||||
|
rActDCCurrent : REAL;
|
||||||
|
rActDCVoltage : REAL;
|
||||||
|
xError : BOOL;
|
||||||
|
xActive : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
// Current state
|
||||||
|
_iState : INT := 0;
|
||||||
|
|
||||||
|
// FB for reading Modbus holding registers
|
||||||
|
_fbReadRegister : FB_MBReadRegs;
|
||||||
|
|
||||||
|
// FB for writing Modbus holding registers
|
||||||
|
_fbWriteRegister : FB_MBWriteRegs;
|
||||||
|
|
||||||
|
// Timer for checking if the inverter started in a reasonable amount of time
|
||||||
|
_tonInverterStartup : TON;
|
||||||
|
|
||||||
|
// converter max power scaling factor
|
||||||
|
_iWMaxSF : INT;
|
||||||
|
|
||||||
|
// Unscaled converter max power
|
||||||
|
_iWMax : UINT;
|
||||||
|
|
||||||
|
// Scaled converter max power
|
||||||
|
_rWMax : REAL;
|
||||||
|
|
||||||
|
// Unscaled limit for converter power
|
||||||
|
_iWMaxLimPct : INT;
|
||||||
|
|
||||||
|
// Scaling factor for power limiting
|
||||||
|
_iWMaxLimPctSF : INT;
|
||||||
|
|
||||||
|
// Unscaled maximum power from type label
|
||||||
|
_iWRTGSF : INT;
|
||||||
|
|
||||||
|
// Scaling for maximum power from type label
|
||||||
|
_rWRTGScaling : REAL;
|
||||||
|
|
||||||
|
// Current state of the inverters internal statemachine
|
||||||
|
_uiInverterState : UINT;
|
||||||
|
|
||||||
|
// Last written power to the inverter
|
||||||
|
_rOldPower : REAL;
|
||||||
|
|
||||||
|
// Value to enable or dissable the Power limiting feature
|
||||||
|
_uiMaxLimEn : UINT;
|
||||||
|
|
||||||
|
// Value for commanding the target state of the inverter
|
||||||
|
_uiPCSSetOperation : UINT;
|
||||||
|
|
||||||
|
// Holds the state number in which an error occured
|
||||||
|
_iErrorInState : INT;
|
||||||
|
|
||||||
|
// Time for polling for current dc values and check for inverter error
|
||||||
|
_timPollingDelay : TIME := T#250MS;
|
||||||
|
|
||||||
|
// Timer for polling of current values
|
||||||
|
_tonPollingTimer : TON;
|
||||||
|
|
||||||
|
// Current DC values (DCA, DCA_SF, DCV, DCV_SF) in word array for efficient modbus reading
|
||||||
|
_awCurrentDCValues : ARRAY[0..3] OF WORD;
|
||||||
|
|
||||||
|
// Inverter error bits
|
||||||
|
_dwErrorBits : DWORD;
|
||||||
|
|
||||||
|
// Inverter reset errors command
|
||||||
|
_uiResetInverter : UINT := 1;
|
||||||
|
|
||||||
|
END_VAR
|
||||||
|
VAR CONSTANT
|
||||||
|
// Inverter statemachine status register
|
||||||
|
// Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
STATUS_REGISTER : WORD := 40108;
|
||||||
|
|
||||||
|
// Throttled power register
|
||||||
|
// Size 1, int16 (Range = -32767 .. 32767, Not implemented 0x8000)
|
||||||
|
W_MAX_LIM_PCT_REGISTER : WORD := 40187;
|
||||||
|
|
||||||
|
// Throttled power register scaling factor
|
||||||
|
// Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000)
|
||||||
|
W_MAX_LIM_PCT_SF_REGISTER : WORD := 40205;
|
||||||
|
|
||||||
|
// Control register to enable and dissable if the power throttleing should be active
|
||||||
|
// Size1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
W_MAX_LIM_EN_REGISTER : WORD := 40191;
|
||||||
|
|
||||||
|
// Register to reset latched alarms in the inverter
|
||||||
|
// Size 1, uint16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
PCS_ALARM_RESET_REGISTER : WORD := 40230;
|
||||||
|
|
||||||
|
// Control register to set the target state of the inverters state machine
|
||||||
|
// Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
PCS_SET_OPERATION_REGISTER : WORD := 40231;
|
||||||
|
|
||||||
|
// Maximum inverter output power
|
||||||
|
// Size 1, uint16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
W_MAX_REGISTER : WORD := 40152;
|
||||||
|
|
||||||
|
// Maximum inverter output power scaling factor
|
||||||
|
// Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000)
|
||||||
|
W_MAX_SF_REGISTER : WORD := 40172;
|
||||||
|
|
||||||
|
// Maximum inverter output power from type label
|
||||||
|
// Size 1, uint16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
W_RTG_REGISTER : WORD := 40125;
|
||||||
|
|
||||||
|
// Maximum inverter output power from type label scaling factor
|
||||||
|
// Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000)
|
||||||
|
W_RTG_SF_REGISTER : WORD := 40126;
|
||||||
|
|
||||||
|
// Start of register with the current dc values
|
||||||
|
// Size 4
|
||||||
|
DC_VALUES_START_REGISTER : WORD := 40097;
|
||||||
|
|
||||||
|
// Error bits register
|
||||||
|
// Size 2
|
||||||
|
EVT_1_REGISTER : WORD := 40110;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Clamp rPower to maximum allowed power
|
||||||
|
IF (rPower > rMaxBattPower) THEN
|
||||||
|
rPower := rMaxBattPower;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF (rPower < -rMaxBattPower) THEN
|
||||||
|
rPower := -rMaxBattPower;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// State machine
|
||||||
|
CASE _iState OF
|
||||||
|
0: // Off
|
||||||
|
// If enable and INTLK Ok
|
||||||
|
IF xEnable THEN
|
||||||
|
_iState := 10;
|
||||||
|
xCloseDCRelais := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
10: // Wait for inverter to be online and in state STANDBY(8)
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= STATUS_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiInverterState),
|
||||||
|
pDestAddr:= ADR(_uiInverterState),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error and the state is STANDBY(8) then continue
|
||||||
|
IF NOT _fbReadRegister.bError AND _uiInverterState = 8 THEN
|
||||||
|
_iState := 20;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
20: // Read inverter max power scaling
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX_SF_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_iWMaxSF),
|
||||||
|
pDestAddr:= ADR(_iWMaxSF),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error then continue
|
||||||
|
IF NOT _fbReadRegister.bError THEN
|
||||||
|
_iState := 25;
|
||||||
|
// Check for valid value
|
||||||
|
IF (_iWMaxSF < -10) OR (_iWMaxSF > 10) OR (_iWMaxSF = 16#8000) THEN
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
25: // Read inverter Max power limit scaling
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX_LIM_PCT_SF_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_iWMaxLimPctSF),
|
||||||
|
pDestAddr:= ADR(_iWMaxLimPctSF),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error then continue
|
||||||
|
IF NOT _fbReadRegister.bError THEN
|
||||||
|
_iState := 30;
|
||||||
|
// Check for valid value
|
||||||
|
IF (_iWMaxLimPctSF < -10) OR (_iWMaxLimPctSF > 10) OR (_iWMaxLimPctSF = 16#8000) THEN
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
30: // Read inverter max power
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_iWMax),
|
||||||
|
pDestAddr:= ADR(_iWMax),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error then continue
|
||||||
|
IF NOT _fbReadRegister.bError THEN
|
||||||
|
_iState := 40;
|
||||||
|
// Reading a register with scaling factor = value * 10^SF
|
||||||
|
_rWMax := _iWMax * EXPT(10,_iWMaxSF);
|
||||||
|
|
||||||
|
// Calculate power to write to register
|
||||||
|
_iWMaxLimPct := LREAL_TO_INT(rPower * EXPT(10,_iWMaxLimPctSF) / _rWMax);
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
40: // Set power limit
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX_LIM_PCT_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_iWMaxLimPct),
|
||||||
|
pSrcAddr:= ADR(_iWMaxLimPct),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF NOT _fbWriteRegister.bError THEN
|
||||||
|
_iState := 50;
|
||||||
|
_rOldPower := rPower;
|
||||||
|
_uiMaxLimEn := 1;
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
50: // Enable Power limiting (THROTTLED)
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX_LIM_EN_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiMaxLimEn),
|
||||||
|
pSrcAddr:= ADR(_uiMaxLimEn),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF NOT _fbWriteRegister.bError THEN
|
||||||
|
_iState := 60;
|
||||||
|
_uiPCSSetOperation := 1;
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
60: // Switch to THROTTLED mode
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= PCS_SET_OPERATION_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiPCSSetOperation),
|
||||||
|
pSrcAddr:= ADR(_uiPCSSetOperation),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF NOT _fbWriteRegister.bError THEN
|
||||||
|
_iState := 65;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
65: // Wait for error polling timer
|
||||||
|
_tonPollingTimer(IN := TRUE, PT := _timPollingDelay);
|
||||||
|
IF _tonPollingTimer.Q THEN
|
||||||
|
_tonPollingTimer(IN := FALSE);
|
||||||
|
_iState := 70;
|
||||||
|
ELSIF ABS(rPower - _rOldPower) > 0.1 THEN
|
||||||
|
_tonPollingTimer(IN := FALSE);
|
||||||
|
// If power has ben changed, goto set power limit mode
|
||||||
|
_iState := 40;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// check if inverter should shut down
|
||||||
|
IF NOT xEnable THEN
|
||||||
|
_uiPCSSetOperation := 3;
|
||||||
|
// Goto shutdown sequence
|
||||||
|
_iState := 200;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
70: // Enabled, check for error
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= STATUS_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiInverterState),
|
||||||
|
pDestAddr:= ADR(_uiInverterState),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error and the converter has no error continue
|
||||||
|
IF NOT _fbReadRegister.bError AND (_uiInverterState <> 7) THEN
|
||||||
|
_iState := 80;
|
||||||
|
IF (_uiInverterState = 4) OR (_uiInverterState = 5) THEN
|
||||||
|
xActive := TRUE;
|
||||||
|
ELSE
|
||||||
|
xActive := FALSE;
|
||||||
|
END_IF
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Read error register
|
||||||
|
_iState := 990;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
80: // Read current DC values
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 4,
|
||||||
|
nMBAddr:= DC_VALUES_START_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_awCurrentDCValues),
|
||||||
|
pDestAddr:= ADR(_awCurrentDCValues),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error and the converter has no error continue
|
||||||
|
IF NOT _fbReadRegister.bError THEN
|
||||||
|
_iState := 65;
|
||||||
|
rActDCCurrent := WORD_TO_UINT(_awCurrentDCValues[0]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[1]));
|
||||||
|
rActDCVoltage := WORD_TO_UINT(_awCurrentDCValues[2]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[3]));
|
||||||
|
ELSE
|
||||||
|
// Read error register
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
200: // Shutdown sequence
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= PCS_SET_OPERATION_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiPCSSetOperation),
|
||||||
|
pSrcAddr:= ADR(_uiPCSSetOperation),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF NOT _fbWriteRegister.bError THEN
|
||||||
|
_iState := 210;
|
||||||
|
rActDCCurrent := 0.0;
|
||||||
|
rActDCVoltage := 0.0;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
210: // Wait for poll timer to
|
||||||
|
_tonPollingTimer(IN := TRUE, PT := _timPollingDelay);
|
||||||
|
IF _tonPollingTimer.Q THEN
|
||||||
|
_tonPollingTimer(IN := FALSE);
|
||||||
|
_iState := 220;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
220: // Poll and wait for standby state
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= STATUS_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiInverterState),
|
||||||
|
pDestAddr:= ADR(_uiInverterState),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error and the converter has no error continue
|
||||||
|
IF NOT _fbReadRegister.bError THEN
|
||||||
|
_iState := 0;
|
||||||
|
xActive := FALSE;
|
||||||
|
xCloseDCRelais := FALSE;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
990: // Read error register
|
||||||
|
_iErrorInState := _iState;
|
||||||
|
_fbReadRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 2,
|
||||||
|
nMBAddr:= EVT_1_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_dwErrorBits),
|
||||||
|
pDestAddr:= ADR(_dwErrorBits),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegister.bBusy THEN
|
||||||
|
// If there was no error and the converter has no error continue
|
||||||
|
IF NOT _fbReadRegister.bError THEN
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
1000: // Error state, wait for reset
|
||||||
|
IF xReset AND (NOT xEnable) THEN
|
||||||
|
_iState := 1010;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
1010: // Try to clear all latched events
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= PCS_ALARM_RESET_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_uiResetInverter),
|
||||||
|
pSrcAddr:= ADR(_uiResetInverter),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
_iState := 0;
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
END_CASE]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="FB_PowerSupplySunspec">
|
||||||
|
<LineId Id="774" Count="70" />
|
||||||
|
<LineId Id="1171" Count="0" />
|
||||||
|
<LineId Id="845" Count="33" />
|
||||||
|
<LineId Id="1172" Count="0" />
|
||||||
|
<LineId Id="879" Count="33" />
|
||||||
|
<LineId Id="1173" Count="0" />
|
||||||
|
<LineId Id="913" Count="29" />
|
||||||
|
<LineId Id="1174" Count="0" />
|
||||||
|
<LineId Id="943" Count="28" />
|
||||||
|
<LineId Id="1175" Count="0" />
|
||||||
|
<LineId Id="972" Count="46" />
|
||||||
|
<LineId Id="1127" Count="0" />
|
||||||
|
<LineId Id="1019" Count="25" />
|
||||||
|
<LineId Id="1097" Count="1" />
|
||||||
|
<LineId Id="1100" Count="1" />
|
||||||
|
<LineId Id="1099" Count="0" />
|
||||||
|
<LineId Id="1045" Count="0" />
|
||||||
|
<LineId Id="1176" Count="0" />
|
||||||
|
<LineId Id="1046" Count="6" />
|
||||||
|
<LineId Id="1063" Count="20" />
|
||||||
|
<LineId Id="1090" Count="0" />
|
||||||
|
<LineId Id="1092" Count="0" />
|
||||||
|
<LineId Id="1084" Count="4" />
|
||||||
|
<LineId Id="1062" Count="0" />
|
||||||
|
<LineId Id="1093" Count="1" />
|
||||||
|
<LineId Id="1102" Count="19" />
|
||||||
|
<LineId Id="1166" Count="1" />
|
||||||
|
<LineId Id="1122" Count="4" />
|
||||||
|
<LineId Id="1054" Count="0" />
|
||||||
|
<LineId Id="1295" Count="4" />
|
||||||
|
<LineId Id="1128" Count="0" />
|
||||||
|
<LineId Id="1300" Count="1" />
|
||||||
|
<LineId Id="1129" Count="0" />
|
||||||
|
<LineId Id="1132" Count="20" />
|
||||||
|
<LineId Id="1163" Count="0" />
|
||||||
|
<LineId Id="1294" Count="0" />
|
||||||
|
<LineId Id="1161" Count="1" />
|
||||||
|
<LineId Id="1130" Count="1" />
|
||||||
|
<LineId Id="1055" Count="0" />
|
||||||
|
<LineId Id="1177" Count="20" />
|
||||||
|
<LineId Id="1199" Count="1" />
|
||||||
|
<LineId Id="1169" Count="0" />
|
||||||
|
<LineId Id="1265" Count="2" />
|
||||||
|
<LineId Id="1269" Count="3" />
|
||||||
|
<LineId Id="1274" Count="11" />
|
||||||
|
<LineId Id="1273" Count="0" />
|
||||||
|
<LineId Id="1289" Count="1" />
|
||||||
|
<LineId Id="1293" Count="0" />
|
||||||
|
<LineId Id="1291" Count="1" />
|
||||||
|
<LineId Id="1056" Count="0" />
|
||||||
|
<LineId Id="12" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
28
PLC/POUs/Sunspec/U_SUNSPEC_ERROR.TcDUT
Normal file
28
PLC/POUs/Sunspec/U_SUNSPEC_ERROR.TcDUT
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<DUT Name="U_SUNSPEC_ERROR" Id="{4000836c-9d7f-470c-9b50-f6d22b3eac05}">
|
||||||
|
<Declaration><![CDATA[TYPE U_SUNSPEC_ERROR :
|
||||||
|
UNION
|
||||||
|
xGroundFault : BOOL;
|
||||||
|
xDCOverVoltage : BOOL;
|
||||||
|
xACDisconnected : BOOL;
|
||||||
|
xDCDisconnected : BOOL;
|
||||||
|
xGridDisconnected : BOOL;
|
||||||
|
xCabinetOpen : BOOL;
|
||||||
|
xManualShutdown : BOOL;
|
||||||
|
xOverTemp : BOOL;
|
||||||
|
xOverFrequency : BOOL;
|
||||||
|
xUnderFrequency : BOOL;
|
||||||
|
xACOverVoltage : BOOL;
|
||||||
|
xACUnderVoltage : BOOL;
|
||||||
|
xBlownStringFuse : BOOL;
|
||||||
|
xUnderTemp : BOOL;
|
||||||
|
xMemoryLoss : BOOL;
|
||||||
|
xHWTestFailure : BOOL;
|
||||||
|
xOtherAlarm : BOOL;
|
||||||
|
xOtherWarning : BOOL;
|
||||||
|
END_UNION
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
17
PLC/PlcTask.TcTTO
Normal file
17
PLC/PlcTask.TcTTO
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1">
|
||||||
|
<Task Name="PlcTask" Id="{13b7271a-7fe7-45e4-a613-10870835774e}">
|
||||||
|
<!--CycleTime in micro seconds.-->
|
||||||
|
<CycleTime>10000</CycleTime>
|
||||||
|
<Priority>20</Priority>
|
||||||
|
<PouCall>
|
||||||
|
<Name>MAIN</Name>
|
||||||
|
</PouCall>
|
||||||
|
<TaskFBGuid>{ffdacf88-4402-4cda-9656-2a188e28ec71}</TaskFBGuid>
|
||||||
|
<Fb_init>{0eaf59ea-61db-47c0-9b16-500c1d3c6c82}</Fb_init>
|
||||||
|
<Fb_exit>{f41aba84-dc9f-4b62-bb12-30d3e8314fa6}</Fb_exit>
|
||||||
|
<CycleUpdate>{347af9e1-a730-412d-bdd1-dba423bbf20a}</CycleUpdate>
|
||||||
|
<PostCycleUpdate>{10f1bd59-1481-4492-b627-08c962a0f93d}</PostCycleUpdate>
|
||||||
|
<ObjectProperties />
|
||||||
|
</Task>
|
||||||
|
</TcPlcObject>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
PLC/_Libraries/cmblu/baselib/0.9.1/baselib.library
Normal file
BIN
PLC/_Libraries/cmblu/baselib/0.9.1/baselib.library
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
PLC/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library
Normal file
BIN
PLC/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library
Normal file
Binary file not shown.
BIN
PLC/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library
Normal file
BIN
PLC/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library
Normal file
Binary file not shown.
Binary file not shown.
BIN
PLC/_Libraries/www.tcunit.org/tcunit/1.2.0.0/tcunit.library
Normal file
BIN
PLC/_Libraries/www.tcunit.org/tcunit/1.2.0.0/tcunit.library
Normal file
Binary file not shown.
10
PLC_SIM/GVLs/GVL_GLOBAL.TcGVL
Normal file
10
PLC_SIM/GVLs/GVL_GLOBAL.TcGVL
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<GVL Name="GVL_GLOBAL" Id="{48e9f5d5-c85b-4e17-821e-1a57bdce0dd8}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
VAR_GLOBAL
|
||||||
|
// Random number generator
|
||||||
|
fbRandom : DRAND;
|
||||||
|
END_VAR]]></Declaration>
|
||||||
|
</GVL>
|
||||||
|
</TcPlcObject>
|
||||||
109
PLC_SIM/PLC_SIM.plcproj
Normal file
109
PLC_SIM/PLC_SIM.plcproj
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<FileVersion>1.0.0.0</FileVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{efb0a11f-989c-4d9e-b375-03735c7e3bff}</ProjectGuid>
|
||||||
|
<SubObjectsSortedByName>True</SubObjectsSortedByName>
|
||||||
|
<DownloadApplicationInfo>true</DownloadApplicationInfo>
|
||||||
|
<WriteProductVersion>true</WriteProductVersion>
|
||||||
|
<GenerateTpy>false</GenerateTpy>
|
||||||
|
<Name>PLC_SIM</Name>
|
||||||
|
<ProgramVersion>3.1.4024.0</ProgramVersion>
|
||||||
|
<Application>{38921a44-c50c-41e2-854b-4368e8bbac4c}</Application>
|
||||||
|
<TypeSystem>{adae6458-f6ee-4eb6-8029-1d3613296f7d}</TypeSystem>
|
||||||
|
<Implicit_Task_Info>{ba927202-89ed-442b-8e0b-f1ede5c67eb6}</Implicit_Task_Info>
|
||||||
|
<Implicit_KindOfTask>{27c26cb9-57f9-4e40-a5e3-9ab282e33703}</Implicit_KindOfTask>
|
||||||
|
<Implicit_Jitter_Distribution>{15dd2994-9051-41e5-9816-57eb64e27026}</Implicit_Jitter_Distribution>
|
||||||
|
<LibraryReferences>{2e35f69f-cdc6-406f-ab1c-2ecda0902edb}</LibraryReferences>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="GVLs\GVL_GLOBAL.TcGVL">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
<LinkAlways>true</LinkAlways>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PlcTask.TcTTO">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Analog_Sensor_Mockup\FB_AnalogSensorMockup.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\FB_UnitMockup.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\MAIN.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Motor_Mockup\FB_MotorMockup.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Valve_Mockup\FB_ValveAnalogMockup.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Valve_Mockup\FB_ValveMockup.TcPOU">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="DUTs" />
|
||||||
|
<Folder Include="GVLs" />
|
||||||
|
<Folder Include="POUs\Analog_Sensor_Mockup" />
|
||||||
|
<Folder Include="POUs\Motor_Mockup" />
|
||||||
|
<Folder Include="POUs\Valve_Mockup" />
|
||||||
|
<Folder Include="VISUs" />
|
||||||
|
<Folder Include="POUs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PlaceholderReference Include="Tc2_Standard">
|
||||||
|
<DefaultResolution>Tc2_Standard, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc2_Standard</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc2_System">
|
||||||
|
<DefaultResolution>Tc2_System, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc2_System</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
<PlaceholderReference Include="Tc3_Module">
|
||||||
|
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
|
<Namespace>Tc3_Module</Namespace>
|
||||||
|
</PlaceholderReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="PLC_SIM.tmc">
|
||||||
|
<SubType>Content</SubType>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<PlcProjectOptions>
|
||||||
|
<XmlArchive>
|
||||||
|
<Data>
|
||||||
|
<o xml:space="preserve" t="OptionKey">
|
||||||
|
<v n="Name">"<ProjectRoot>"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||||
|
<v>{40450F57-0AA3-4216-96F3-5444ECB29763}</v>
|
||||||
|
<o>
|
||||||
|
<v n="Name">"{40450F57-0AA3-4216-96F3-5444ECB29763}"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" />
|
||||||
|
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||||
|
<v>ActiveVisuProfile</v>
|
||||||
|
<v>IR0whWr8bwfwBwAAiD2qpQAAAABVAgAA37x72QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA=</v>
|
||||||
|
</d>
|
||||||
|
</o>
|
||||||
|
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
||||||
|
<o>
|
||||||
|
<v n="Name">"{192FAD59-8248-4824-A8DE-9177C94C195A}"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" />
|
||||||
|
<d n="Values" t="Hashtable" />
|
||||||
|
</o>
|
||||||
|
</d>
|
||||||
|
<d n="Values" t="Hashtable" />
|
||||||
|
</o>
|
||||||
|
</Data>
|
||||||
|
<TypeList>
|
||||||
|
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||||
|
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||||
|
<Type n="String">System.String</Type>
|
||||||
|
</TypeList>
|
||||||
|
</XmlArchive>
|
||||||
|
</PlcProjectOptions>
|
||||||
|
</ProjectExtensions>
|
||||||
|
</Project>
|
||||||
1
PLC_SIM/PLC_SIM.tmc
Normal file
1
PLC_SIM/PLC_SIM.tmc
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,98 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_AnalogSensorMockup" Id="{198f1df4-73a2-495b-b972-189adc06c969}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_AnalogSensorMockup
|
||||||
|
VAR_INPUT
|
||||||
|
// Raise sensor level from min to max
|
||||||
|
xEnable : BOOL;
|
||||||
|
|
||||||
|
// Sensor value when enabled
|
||||||
|
rOnValue : REAL;
|
||||||
|
|
||||||
|
// Sensor value when dissabled
|
||||||
|
rOffValue : REAL;
|
||||||
|
|
||||||
|
// Sensor noise value
|
||||||
|
rNoise : REAL := 0.0;
|
||||||
|
|
||||||
|
// Sensor min value for analog scaling
|
||||||
|
rMinValue : REAL := 0.0;
|
||||||
|
|
||||||
|
// Sensor max value for analog scaling
|
||||||
|
rMaxValue : REAL := 1.0;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
iAnalogValue AT %Q* : INT;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
// Internal target value
|
||||||
|
_rTargetValue : REAL;
|
||||||
|
|
||||||
|
// Temp variable
|
||||||
|
_lrTmp : LREAL;
|
||||||
|
|
||||||
|
// Filter data
|
||||||
|
_rFilterParam : REAL := 0.005;
|
||||||
|
_rFilterParam2 : REAL := 1.0 - _rFilterParam;
|
||||||
|
|
||||||
|
// Calculated value
|
||||||
|
_rValue : REAL;
|
||||||
|
|
||||||
|
// Last calculated value
|
||||||
|
_rPrevValue : REAL := 0.0;
|
||||||
|
|
||||||
|
// Analog output
|
||||||
|
_fbValveAnalogOutput : FB_AnalogOutput('');
|
||||||
|
|
||||||
|
// Analog output scaling
|
||||||
|
_stAnalogScaling : ST_ANALOG_IO_CONFIG;
|
||||||
|
_stAnalogEWConfig : ST_ANALOG_EW_LEVELS;
|
||||||
|
_stAnalogEWDelays : ST_ANALOG_EW_DELAYS;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Pressure only if enabled
|
||||||
|
IF xEnable THEN
|
||||||
|
_rTargetValue := rOnValue;
|
||||||
|
ELSE
|
||||||
|
_rTargetValue := rOffValue;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Get a random number
|
||||||
|
GVL_GLOBAL.fbRandom(Seed := 1337, Num => _lrTmp);
|
||||||
|
|
||||||
|
// Exponential smoothing
|
||||||
|
_rValue := _rFilterParam * _rTargetValue + _rFilterParam2 * _rPrevValue;
|
||||||
|
_rPrevValue := _rValue;
|
||||||
|
|
||||||
|
// Add some random noise
|
||||||
|
IF xEnable THEN
|
||||||
|
_rValue := _rValue + (LREAL_TO_REAL(_lrTmp - 0.5) * rNoise);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Set analog output scaling
|
||||||
|
_stAnalogScaling.iAIMax := 32767;
|
||||||
|
_stAnalogScaling.iAIMin := 0;
|
||||||
|
_stAnalogScaling.rPVMax := rMaxValue;
|
||||||
|
_stAnalogScaling.rPVMin := rMinValue;
|
||||||
|
|
||||||
|
// Calculate analog output from ramp generator setpoint
|
||||||
|
_fbValveAnalogOutput(
|
||||||
|
rSetpoint:= _rValue,
|
||||||
|
stScalingConfig:= _stAnalogScaling,
|
||||||
|
xReleaseErrors:= FALSE,
|
||||||
|
xReleaseHardwareErrors:= FALSE,
|
||||||
|
xConfirmAlarms:= ,
|
||||||
|
iAnalogValue=> iAnalogValue,
|
||||||
|
xError=> );]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="FB_AnalogSensorMockup">
|
||||||
|
<LineId Id="719" Count="14" />
|
||||||
|
<LineId Id="798" Count="0" />
|
||||||
|
<LineId Id="734" Count="0" />
|
||||||
|
<LineId Id="799" Count="0" />
|
||||||
|
<LineId Id="735" Count="14" />
|
||||||
|
<LineId Id="9" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
111
PLC_SIM/POUs/FB_UnitMockup.TcPOU
Normal file
111
PLC_SIM/POUs/FB_UnitMockup.TcPOU
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_UnitMockup" Id="{a1155b26-00e6-4710-a8e4-140d6d5cd082}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_UnitMockup
|
||||||
|
VAR_INPUT
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
// Valves posolyt
|
||||||
|
_fbPosolytValveTankOutlet : FB_ValveMockup;
|
||||||
|
|
||||||
|
// Valves negolyt
|
||||||
|
_fbNegolytValveTankOutlet : FB_ValveMockup;
|
||||||
|
|
||||||
|
// Pumps posolyt
|
||||||
|
_fbPosolytPumpInlet : FB_MotorMockup;
|
||||||
|
|
||||||
|
// Pumps negolyt
|
||||||
|
_fbNegolytPumpInlet : FB_MotorMockup;
|
||||||
|
|
||||||
|
|
||||||
|
// Pressure sensors posolyt
|
||||||
|
_fbPressurePosolytSegmentInlet : FB_AnalogSensorMockup;
|
||||||
|
_fbPressurePosolytTankInlet : FB_AnalogSensorMockup;
|
||||||
|
|
||||||
|
|
||||||
|
// Pressure sensors negolyt
|
||||||
|
_fbPressureNegolytSegmentInlet : FB_AnalogSensorMockup;
|
||||||
|
_fbPressureNegolytTankInlet : FB_AnalogSensorMockup;
|
||||||
|
|
||||||
|
// Helping variables
|
||||||
|
_xFlowThroughtSegmentPosolyt : BOOL;
|
||||||
|
_xFlowThroughtBypassPosolyt : BOOL;
|
||||||
|
|
||||||
|
_xFlowThroughtSegmentNegolyt : BOOL;
|
||||||
|
_xFlowThroughtBypassNegolyt : BOOL;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Valves posolyt
|
||||||
|
_fbPosolytValveTankOutlet();
|
||||||
|
|
||||||
|
// Valves negolyt
|
||||||
|
_fbNegolytValveTankOutlet();
|
||||||
|
|
||||||
|
// Pumps posolyt
|
||||||
|
_fbPosolytPumpInlet();
|
||||||
|
|
||||||
|
// Pumps negolyt
|
||||||
|
_fbNegolytPumpInlet();
|
||||||
|
|
||||||
|
// Simulate flow posolyt
|
||||||
|
_xFlowThroughtSegmentPosolyt := _fbPosolytPumpInlet.xEnable AND _fbPosolytValveTankOutlet.xOpenFeedback;
|
||||||
|
_xFlowThroughtBypassPosolyt := _fbPosolytPumpInlet.xEnable AND NOT _fbPosolytValveTankOutlet.xOpenFeedback;
|
||||||
|
|
||||||
|
_xFlowThroughtSegmentNegolyt := _fbNegolytPumpInlet.xEnable AND _fbNegolytValveTankOutlet.xOpenFeedback;
|
||||||
|
_xFlowThroughtBypassNegolyt := _fbNegolytPumpInlet.xEnable AND NOT _fbNegolytValveTankOutlet.xOpenFeedback ;
|
||||||
|
|
||||||
|
// Pressure sensors posolyt
|
||||||
|
_fbPressurePosolytSegmentInlet(
|
||||||
|
xEnable:= _xFlowThroughtSegmentPosolyt,
|
||||||
|
rOnValue:= 0.487,
|
||||||
|
rOffValue:= 0.0,
|
||||||
|
rNoise:= 0.002,
|
||||||
|
rMinValue:= -1.0,
|
||||||
|
rMaxValue:= 1.5);
|
||||||
|
|
||||||
|
_fbPressurePosolytTankInlet(
|
||||||
|
xEnable:= _xFlowThroughtSegmentPosolyt,
|
||||||
|
rOnValue:= 0.0429,
|
||||||
|
rOffValue:= 0.0,
|
||||||
|
rNoise:= 0.002,
|
||||||
|
rMinValue:= -1.0,
|
||||||
|
rMaxValue:= 1.5);
|
||||||
|
|
||||||
|
// Pressure sensors negolyt
|
||||||
|
_fbPressureNegolytSegmentInlet(
|
||||||
|
xEnable:= _xFlowThroughtSegmentNegolyt,
|
||||||
|
rOnValue:= 0.487,
|
||||||
|
rOffValue:= 0.0,
|
||||||
|
rNoise:= 0.002,
|
||||||
|
rMinValue:= -1.0,
|
||||||
|
rMaxValue:= 1.5);
|
||||||
|
|
||||||
|
_fbPressureNegolytTankInlet(
|
||||||
|
xEnable:= _xFlowThroughtSegmentNegolyt,
|
||||||
|
rOnValue:= 0.0429,
|
||||||
|
rOffValue:= 0.0,
|
||||||
|
rNoise:= 0.002,
|
||||||
|
rMinValue:= -1.0,
|
||||||
|
rMaxValue:= 1.5);
|
||||||
|
]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="FB_UnitMockup">
|
||||||
|
<LineId Id="482" Count="1" />
|
||||||
|
<LineId Id="486" Count="2" />
|
||||||
|
<LineId Id="491" Count="2" />
|
||||||
|
<LineId Id="495" Count="2" />
|
||||||
|
<LineId Id="499" Count="2" />
|
||||||
|
<LineId Id="695" Count="3" />
|
||||||
|
<LineId Id="502" Count="8" />
|
||||||
|
<LineId Id="519" Count="7" />
|
||||||
|
<LineId Id="568" Count="3" />
|
||||||
|
<LineId Id="699" Count="3" />
|
||||||
|
<LineId Id="576" Count="0" />
|
||||||
|
<LineId Id="585" Count="7" />
|
||||||
|
<LineId Id="600" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
13
PLC_SIM/POUs/MAIN.TcPOU
Normal file
13
PLC_SIM/POUs/MAIN.TcPOU
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1">
|
||||||
|
<POU Name="MAIN" Id="{bb83bde3-1093-40be-b27d-d7bc60ebb5a6}">
|
||||||
|
<Declaration><![CDATA[PROGRAM MAIN
|
||||||
|
VAR
|
||||||
|
END_VAR
|
||||||
|
]]>
|
||||||
|
</Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
103
PLC_SIM/POUs/Motor_Mockup/FB_MotorMockup.TcPOU
Normal file
103
PLC_SIM/POUs/Motor_Mockup/FB_MotorMockup.TcPOU
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_MotorMockup" Id="{2caa045e-1cb0-4e4b-ae71-f86aa7b0d7a4}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_MotorMockup
|
||||||
|
VAR_INPUT
|
||||||
|
// Enable motor
|
||||||
|
xEnable AT%I* : BOOL;
|
||||||
|
|
||||||
|
// Motor setpoint
|
||||||
|
iSetpoint AT%I* : INT;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
// Motor circuit breaker ok
|
||||||
|
xMCBOk AT %Q* : BOOL;
|
||||||
|
|
||||||
|
// Repair switch ok
|
||||||
|
xRepairSwitchOk AT %Q* : BOOL;
|
||||||
|
|
||||||
|
// Motor speed feedback
|
||||||
|
iMotorSpeedFeedback AT %Q* : INT;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
_iInternalSetpoint : INT;
|
||||||
|
|
||||||
|
_fbRampGenerator : FB_RampGenerator;
|
||||||
|
|
||||||
|
_fbValveAnalogInput : FB_AnalogInput('');
|
||||||
|
_stAnalogScaling : ST_ANALOG_IO_CONFIG := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0);
|
||||||
|
_stAnalogEWConfig : ST_ANALOG_EW_LEVELS;
|
||||||
|
_stAnalogEWDelays : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
_fbValveAnalogOutput : FB_AnalogOutput('');
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Set MCB and repair switch ok
|
||||||
|
xMCBOk := TRUE;
|
||||||
|
xRepairSwitchok := TRUE;
|
||||||
|
|
||||||
|
// Turn motor off if enable signal is not set
|
||||||
|
IF xEnable THEN
|
||||||
|
_iInternalSetpoint := iSetpoint;
|
||||||
|
ELSE
|
||||||
|
iSetpoint := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Calculate setpoint 0% - 100%
|
||||||
|
// from analog value
|
||||||
|
_fbValveAnalogInput(
|
||||||
|
iAnalogValue:= iSetpoint,
|
||||||
|
stScalingConfig:= _stAnalogScaling,
|
||||||
|
stEWConfig:= _stAnalogEWConfig,
|
||||||
|
stEWDelayConfig:= _stAnalogEWDelays,
|
||||||
|
xUnderrange:= FALSE,
|
||||||
|
xOverrange:= FALSE,
|
||||||
|
xErrorCard:= FALSE,
|
||||||
|
xReleaseErrors:= FALSE,
|
||||||
|
xReleaseLimitErrors:= FALSE,
|
||||||
|
xReleaseHardwareErrors:= FALSE,
|
||||||
|
xConfirmAlarms:= ,
|
||||||
|
xError=> ,
|
||||||
|
xWarning=> ,
|
||||||
|
rScaledValue=> ,
|
||||||
|
xErrorLow=> ,
|
||||||
|
xWarningLow=> ,
|
||||||
|
xWarningHigh=> ,
|
||||||
|
xErrorHigh=> );
|
||||||
|
|
||||||
|
// Ramp generator for speed simulation
|
||||||
|
_fbRampGenerator(
|
||||||
|
rTarget:= _fbValveAnalogInput.rScaledValue,
|
||||||
|
rTargetMin:= 0,
|
||||||
|
rTargetMax:= 100,
|
||||||
|
timRampUp:= T#10S,
|
||||||
|
timRampDown:= T#10S,
|
||||||
|
rSetpoint=> );
|
||||||
|
|
||||||
|
// Calculate analog output from ramp generator setpoint
|
||||||
|
_fbValveAnalogOutput(
|
||||||
|
rSetpoint:= _fbRampGenerator.rSetpoint,
|
||||||
|
stScalingConfig:= _stAnalogScaling,
|
||||||
|
xReleaseErrors:= FALSE,
|
||||||
|
xReleaseHardwareErrors:= FALSE,
|
||||||
|
xConfirmAlarms:= ,
|
||||||
|
iAnalogValue=> iMotorSpeedFeedback,
|
||||||
|
xError=> );]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="FB_MotorMockup">
|
||||||
|
<LineId Id="23" Count="0" />
|
||||||
|
<LineId Id="9" Count="0" />
|
||||||
|
<LineId Id="25" Count="0" />
|
||||||
|
<LineId Id="83" Count="0" />
|
||||||
|
<LineId Id="75" Count="0" />
|
||||||
|
<LineId Id="74" Count="0" />
|
||||||
|
<LineId Id="76" Count="0" />
|
||||||
|
<LineId Id="81" Count="1" />
|
||||||
|
<LineId Id="77" Count="0" />
|
||||||
|
<LineId Id="26" Count="0" />
|
||||||
|
<LineId Id="35" Count="38" />
|
||||||
|
<LineId Id="24" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
96
PLC_SIM/POUs/Valve_Mockup/FB_ValveAnalogMockup.TcPOU
Normal file
96
PLC_SIM/POUs/Valve_Mockup/FB_ValveAnalogMockup.TcPOU
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_ValveAnalogMockup" Id="{e3712921-003e-473b-993e-6c5d40e0a0c0}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_ValveAnalogMockup
|
||||||
|
VAR_INPUT
|
||||||
|
iAnalogSetpoint AT %I* : INT;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
xOpenFeedback AT %Q* : BOOL;
|
||||||
|
xCloseFeedback AT %Q* : BOOL;
|
||||||
|
iAnalogProcessValue AT %Q* : INT;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
_fbRampGenerator : FB_RampGenerator;
|
||||||
|
|
||||||
|
_fbValveAnalogInput : FB_AnalogInput('');
|
||||||
|
_stAnalogScaling : ST_ANALOG_IO_CONFIG := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0);
|
||||||
|
_stAnalogEWConfig : ST_ANALOG_EW_LEVELS;
|
||||||
|
_stAnalogEWDelays : ST_ANALOG_EW_DELAYS;
|
||||||
|
|
||||||
|
_fbValveAnalogOutput : FB_AnalogOutput('');
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Calculate setpoint 0% - 100%
|
||||||
|
// from analog value
|
||||||
|
_fbValveAnalogInput(
|
||||||
|
iAnalogValue:= iAnalogSetpoint,
|
||||||
|
stScalingConfig:= _stAnalogScaling,
|
||||||
|
stEWConfig:= _stAnalogEWConfig,
|
||||||
|
stEWDelayConfig:= _stAnalogEWDelays,
|
||||||
|
xUnderrange:= FALSE,
|
||||||
|
xOverrange:= FALSE,
|
||||||
|
xErrorCard:= FALSE,
|
||||||
|
xReleaseErrors:= FALSE,
|
||||||
|
xReleaseLimitErrors:= FALSE,
|
||||||
|
xReleaseHardwareErrors:= FALSE,
|
||||||
|
xConfirmAlarms:= ,
|
||||||
|
xError=> ,
|
||||||
|
xWarning=> ,
|
||||||
|
rScaledValue=> ,
|
||||||
|
xErrorLow=> ,
|
||||||
|
xWarningLow=> ,
|
||||||
|
xWarningHigh=> ,
|
||||||
|
xErrorHigh=> );
|
||||||
|
|
||||||
|
// Ramp generator for position simulation
|
||||||
|
_fbRampGenerator(
|
||||||
|
rTarget:= _fbValveAnalogInput.rScaledValue,
|
||||||
|
rTargetMin:= 0,
|
||||||
|
rTargetMax:= 100,
|
||||||
|
timRampUp:= T#5S,
|
||||||
|
timRampDown:= T#5S,
|
||||||
|
rSetpoint=> );
|
||||||
|
|
||||||
|
// Calculate analog output from ramp generator setpoint
|
||||||
|
_fbValveAnalogOutput(
|
||||||
|
rSetpoint:= _fbRampGenerator.rSetpoint,
|
||||||
|
stScalingConfig:= _stAnalogScaling,
|
||||||
|
xReleaseErrors:= FALSE,
|
||||||
|
xReleaseHardwareErrors:= FALSE,
|
||||||
|
xConfirmAlarms:= ,
|
||||||
|
iAnalogValue=> iAnalogProcessValue,
|
||||||
|
xError=> );
|
||||||
|
|
||||||
|
// Simulate close feedback
|
||||||
|
IF _fbRampGenerator.rSetpoint < 5.0 THEN
|
||||||
|
xCloseFeedback := TRUE;
|
||||||
|
ELSE
|
||||||
|
xCloseFeedback := FALSE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Simulate open feedback
|
||||||
|
IF _fbRampGenerator.rSetpoint > 95.0 THEN
|
||||||
|
xOpenFeedback := TRUE;
|
||||||
|
ELSE
|
||||||
|
xOpenFeedback := FALSE;
|
||||||
|
END_IF]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="FB_ValveAnalogMockup">
|
||||||
|
<LineId Id="603" Count="38" />
|
||||||
|
<LineId Id="75" Count="0" />
|
||||||
|
<LineId Id="642" Count="0" />
|
||||||
|
<LineId Id="654" Count="0" />
|
||||||
|
<LineId Id="643" Count="1" />
|
||||||
|
<LineId Id="646" Count="1" />
|
||||||
|
<LineId Id="645" Count="0" />
|
||||||
|
<LineId Id="655" Count="0" />
|
||||||
|
<LineId Id="649" Count="0" />
|
||||||
|
<LineId Id="648" Count="0" />
|
||||||
|
<LineId Id="650" Count="0" />
|
||||||
|
<LineId Id="652" Count="1" />
|
||||||
|
<LineId Id="651" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
32
PLC_SIM/POUs/Valve_Mockup/FB_ValveMockup.TcPOU
Normal file
32
PLC_SIM/POUs/Valve_Mockup/FB_ValveMockup.TcPOU
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
||||||
|
<POU Name="FB_ValveMockup" Id="{547b8ab6-f6bc-4f02-ac80-4920749ff4eb}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_ValveMockup
|
||||||
|
VAR_INPUT
|
||||||
|
xOpenValve AT %I* : BOOL;
|
||||||
|
xCloseValve AT %I* : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
xOpenFeedback AT %Q* : BOOL;
|
||||||
|
xCloseFeedback AT %Q* : BOOL;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
_tonOpen : TON := (PT := T#2S);
|
||||||
|
_tonClose : TON := (PT := T#2S);
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[// Timer for open and close feedback
|
||||||
|
_tonOpen(IN := xOpenValve);
|
||||||
|
_tonClose(IN := xCloseValve);
|
||||||
|
|
||||||
|
// Open and close feedback
|
||||||
|
xOpenFeedback := _tonOpen.Q;
|
||||||
|
xCloseFeedback := _tonClose.Q;]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<LineIds Name="FB_ValveMockup">
|
||||||
|
<LineId Id="54" Count="5" />
|
||||||
|
<LineId Id="20" Count="0" />
|
||||||
|
</LineIds>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
17
PLC_SIM/PlcTask.TcTTO
Normal file
17
PLC_SIM/PlcTask.TcTTO
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1">
|
||||||
|
<Task Name="PlcTask" Id="{7e68243f-9ee1-4485-91d4-df46ccccb863}">
|
||||||
|
<!--CycleTime in micro seconds.-->
|
||||||
|
<CycleTime>10000</CycleTime>
|
||||||
|
<Priority>21</Priority>
|
||||||
|
<PouCall>
|
||||||
|
<Name>MAIN</Name>
|
||||||
|
</PouCall>
|
||||||
|
<TaskFBGuid>{e424b7e9-d35f-4add-9e65-4af401c46aa0}</TaskFBGuid>
|
||||||
|
<Fb_init>{4a091579-5862-4103-8545-d4a37f151ab9}</Fb_init>
|
||||||
|
<Fb_exit>{f7dc1c2f-47b8-4449-935a-4621db3fcb63}</Fb_exit>
|
||||||
|
<CycleUpdate>{44041344-d2bc-48db-b8cc-eb686eb6ca64}</CycleUpdate>
|
||||||
|
<PostCycleUpdate>{0c24a224-7f2d-4ec6-9338-1114f4f413c3}</PostCycleUpdate>
|
||||||
|
<ObjectProperties />
|
||||||
|
</Task>
|
||||||
|
</TcPlcObject>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2
README.md
Normal file
2
README.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# UniBlu
|
||||||
|
Beckhoff SPS-Projekt für das [UniBlu-Projekt](https://cmblu.sharepoint.com/SitePages/Projekt--UniBlu-.aspx). Dokumentation erfolgt über das [CMBlu Wiki](https://wiki.blu.net/de/Customer-Projects/UniBlu).
|
||||||
74
Safety/Safety.splcproj
Normal file
74
Safety/Safety.splcproj
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project Crc="248407939" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{3f028238-46cf-458c-8df3-e9a8faa6af8b}</ProjectGuid>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<RootNamespace>TwinCAT3SafePlcProject</RootNamespace>
|
||||||
|
<AssemblyName>TwinCAT3SafePlcProject</AssemblyName>
|
||||||
|
<FileUpgradeFlags />
|
||||||
|
<UpgradeBackupLocation />
|
||||||
|
<OldToolsVersion>2.0</OldToolsVersion>
|
||||||
|
<TargetSystem>EL6900</TargetSystem>
|
||||||
|
<ProgrammingLanguage>Graphical Editor</ProgrammingLanguage>
|
||||||
|
<Worker>matthias.heisig</Worker>
|
||||||
|
<IntProjName>Safety</IntProjName>
|
||||||
|
<IsNewCreated>false</IsNewCreated>
|
||||||
|
<SPlcProjVersion>1.7.0.0</SPlcProjVersion>
|
||||||
|
<NextSdsId>17</NextSdsId>
|
||||||
|
<DocuEditor>m.heisig</DocuEditor>
|
||||||
|
<PlotDate>2023-12-08</PlotDate>
|
||||||
|
<CompanyName>cmblu Energy AG</CompanyName>
|
||||||
|
<CompanyLogo>cmblu Energy AG</CompanyLogo>
|
||||||
|
<FbPerPage>0</FbPerPage>
|
||||||
|
<AddUserAdministrationPages>False</AddUserAdministrationPages>
|
||||||
|
<AddProjectVersionHistoryPages>False</AddProjectVersionHistoryPages>
|
||||||
|
<AddCustomPages>False</AddCustomPages>
|
||||||
|
<TextBox />
|
||||||
|
<AddMultiSettingDocuments>False</AddMultiSettingDocuments>
|
||||||
|
<AddHashValueTablePages>False</AddHashValueTablePages>
|
||||||
|
<SafeAddressVerification>ProjectWideUnique</SafeAddressVerification>
|
||||||
|
<FbInPortActivationVerification>Strict</FbInPortActivationVerification>
|
||||||
|
<AliasDeviceAutoLinkingVerification>MismatchAsError</AliasDeviceAutoLinkingVerification>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
|
<DebugSymbols>false</DebugSymbols>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||||
|
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\EL1904, 4 digital inputs_1.sds" />
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\EL2904, 4 digital outputs_1.sds" />
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\EL3124-0090 4Ch_ Ana_ Input 4-20mA Diff_, TwinSAFE SC_1.sds" />
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\EL5021-0090 1Ch_ Sin_Cos Encoder, TwinSAFE SC_1.sds" />
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\iSpeedPumpA.sds" />
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\xResetEStop.sds" />
|
||||||
|
<None Include="TwinSafeGroup1\TwinSafeGroup1.sal" />
|
||||||
|
<None Include="TwinSafeGroup1\TwinSafeGroup1.sal.diagram">
|
||||||
|
<DependentUpon>TwinSafeGroup1\TwinSafeGroup1.sal</DependentUpon>
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="TargetSystemConfig.xml">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="User FBs\AlwaysTrue.ufb" />
|
||||||
|
<None Include="User FBs\AlwaysTrue.ufb.diagram">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
<DependentUpon>User FBs\AlwaysTrue.ufb</DependentUpon>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="GVLs" />
|
||||||
|
<Folder Include="TwinSafeGroup1" />
|
||||||
|
<Folder Include="TwinSafeGroup1\Alias Devices" />
|
||||||
|
<Folder Include="User FBs" />
|
||||||
|
<None Include="TwinSafeGroup1\Alias Devices\ErrorAcknowledgement.sds" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<DocumentationProperty>
|
||||||
|
<ProjectVersionHistories />
|
||||||
|
</DocumentationProperty>
|
||||||
|
</ProjectExtensions>
|
||||||
|
</Project>
|
||||||
22
Safety/TargetSystemConfig.xml
Normal file
22
Safety/TargetSystemConfig.xml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TargetSystemConfig Crc="2771479752" Version="1.5">
|
||||||
|
<TargetSystemType>HSafetyPLC</TargetSystemType>
|
||||||
|
<TargetSystemSubType>EL6910</TargetSystemSubType>
|
||||||
|
<IsExternalDevice>false</IsExternalDevice>
|
||||||
|
<TargetSystemObjectId />
|
||||||
|
<TargetSystemObjectName />
|
||||||
|
<SoftwareVersion />
|
||||||
|
<SerialNumber />
|
||||||
|
<ProjectCRC />
|
||||||
|
<MapProjectCRC>false</MapProjectCRC>
|
||||||
|
<MapSerialNumber>false</MapSerialNumber>
|
||||||
|
<VersionNumber>1</VersionNumber>
|
||||||
|
<FSOEAddress>1</FSOEAddress>
|
||||||
|
<DipSwitch />
|
||||||
|
<AmsNetID />
|
||||||
|
<AmsPort />
|
||||||
|
<ConnectionInfoDataConfigOld>false</ConnectionInfoDataConfigOld>
|
||||||
|
<TakeOverSafetyAliasDeviceNamesInProcessImage>false</TakeOverSafetyAliasDeviceNamesInProcessImage>
|
||||||
|
<TakeOverStandardAliasDeviceNamesInProcessImage>false</TakeOverStandardAliasDeviceNamesInProcessImage>
|
||||||
|
<BackupRestore Needed="0" Activated="false" RestoreUserAdministration="false" />
|
||||||
|
</TargetSystemConfig>
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="706303120" FileFormatVersion="1.8">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>4</Type>
|
||||||
|
<SubType>190</SubType>
|
||||||
|
<VendorId>2</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>2</SDSID>
|
||||||
|
<SafetyAliasDevice>
|
||||||
|
<ObjectId>50921475</ObjectId>
|
||||||
|
<LinkingMode>Automatic</LinkingMode>
|
||||||
|
<ConnectionId>2</ConnectionId>
|
||||||
|
<ConnectionMode>master</ConnectionMode>
|
||||||
|
<ConnectionType>FSoE</ConnectionType>
|
||||||
|
<MapDiag>false</MapDiag>
|
||||||
|
<MapInputs>false</MapInputs>
|
||||||
|
<MapOutputs>false</MapOutputs>
|
||||||
|
<MapState>false</MapState>
|
||||||
|
<ModuleFaultIsComErr>false</ModuleFaultIsComErr>
|
||||||
|
<SafeAddress>2</SafeAddress>
|
||||||
|
<Watchdog>100</Watchdog>
|
||||||
|
<ComErrAck Type="Unset" />
|
||||||
|
<Params>
|
||||||
|
<Param Index="4320" SubIndex="1">0000</Param>
|
||||||
|
<Param Index="4320" SubIndex="2">0000</Param>
|
||||||
|
<Param Index="32768" SubIndex="1">0000</Param>
|
||||||
|
<Param Index="32769" SubIndex="1">01</Param>
|
||||||
|
<Param Index="32769" SubIndex="2">01</Param>
|
||||||
|
<Param Index="32769" SubIndex="3">01</Param>
|
||||||
|
<Param Index="32769" SubIndex="4">01</Param>
|
||||||
|
<Param Index="32770" SubIndex="1">00</Param>
|
||||||
|
<Param Index="32770" SubIndex="3">00</Param>
|
||||||
|
<Messages>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Master CMD</Name>
|
||||||
|
<Index>28672</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name />
|
||||||
|
<Index>0</Index>
|
||||||
|
<SubIndex>0</SubIndex>
|
||||||
|
<DataType />
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Master CRC_0</Name>
|
||||||
|
<Index>28672</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>16</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Master ConnID</Name>
|
||||||
|
<Index>28672</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>32</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Slave CMD</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>InputChannel1</Name>
|
||||||
|
<Index>24577</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>InputChannel2</Name>
|
||||||
|
<Index>24577</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>9</BitOffsMessage>
|
||||||
|
<BitOffsData>1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>InputChannel3</Name>
|
||||||
|
<Index>24577</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>10</BitOffsMessage>
|
||||||
|
<BitOffsData>2</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>InputChannel4</Name>
|
||||||
|
<Index>24577</Index>
|
||||||
|
<SubIndex>4</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>11</BitOffsMessage>
|
||||||
|
<BitOffsData>3</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name />
|
||||||
|
<Index>0</Index>
|
||||||
|
<SubIndex>0</SubIndex>
|
||||||
|
<DataType />
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>4</BitSize>
|
||||||
|
<BitOffsMessage>12</BitOffsMessage>
|
||||||
|
<BitOffsData>4</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Slave CRC_0</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>16</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Slave ConnID</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>32</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
</Messages>
|
||||||
|
</Params>
|
||||||
|
</SafetyAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
@@ -0,0 +1,166 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="3021705149" FileFormatVersion="1.8">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>4</Type>
|
||||||
|
<SubType>290</SubType>
|
||||||
|
<VendorId>2</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>3</SDSID>
|
||||||
|
<SafetyAliasDevice>
|
||||||
|
<ObjectId>50921473</ObjectId>
|
||||||
|
<LinkingMode>Automatic</LinkingMode>
|
||||||
|
<ConnectionId>3</ConnectionId>
|
||||||
|
<ConnectionMode>master</ConnectionMode>
|
||||||
|
<ConnectionType>FSoE</ConnectionType>
|
||||||
|
<MapDiag>false</MapDiag>
|
||||||
|
<MapInputs>false</MapInputs>
|
||||||
|
<MapOutputs>false</MapOutputs>
|
||||||
|
<MapState>false</MapState>
|
||||||
|
<ModuleFaultIsComErr>false</ModuleFaultIsComErr>
|
||||||
|
<SafeAddress>3</SafeAddress>
|
||||||
|
<Watchdog>100</Watchdog>
|
||||||
|
<ComErrAck Type="Unset" />
|
||||||
|
<Params>
|
||||||
|
<Param Index="4320" SubIndex="1">0000</Param>
|
||||||
|
<Param Index="4320" SubIndex="2">0000</Param>
|
||||||
|
<Param Index="32768" SubIndex="1">00</Param>
|
||||||
|
<Param Index="32768" SubIndex="2">01</Param>
|
||||||
|
<Param Index="32768" SubIndex="3">01</Param>
|
||||||
|
<Param Index="32768" SubIndex="4">00</Param>
|
||||||
|
<Messages>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Master CMD</Name>
|
||||||
|
<Index>28672</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>OutputChannel1</Name>
|
||||||
|
<Index>28673</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>OutputChannel2</Name>
|
||||||
|
<Index>28673</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>9</BitOffsMessage>
|
||||||
|
<BitOffsData>1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>OutputChannel3</Name>
|
||||||
|
<Index>28673</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>10</BitOffsMessage>
|
||||||
|
<BitOffsData>2</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>OutputChannel4</Name>
|
||||||
|
<Index>28673</Index>
|
||||||
|
<SubIndex>4</SubIndex>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
<BitOffsMessage>11</BitOffsMessage>
|
||||||
|
<BitOffsData>3</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name />
|
||||||
|
<Index>0</Index>
|
||||||
|
<SubIndex>0</SubIndex>
|
||||||
|
<DataType />
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>4</BitSize>
|
||||||
|
<BitOffsMessage>12</BitOffsMessage>
|
||||||
|
<BitOffsData>4</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Master CRC_0</Name>
|
||||||
|
<Index>28672</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>16</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Master ConnID</Name>
|
||||||
|
<Index>28672</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>32</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Slave CMD</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name />
|
||||||
|
<Index>0</Index>
|
||||||
|
<SubIndex>0</SubIndex>
|
||||||
|
<DataType />
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil3</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Slave CRC_0</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>16</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>FSoE Slave ConnID</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>32</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
</Messages>
|
||||||
|
</Params>
|
||||||
|
</SafetyAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="3754304071" FileFormatVersion="1.8">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>4</Type>
|
||||||
|
<SubType>3124</SubType>
|
||||||
|
<VendorId>2</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>16</SDSID>
|
||||||
|
<SafetyAliasDevice>
|
||||||
|
<ObjectId>0</ObjectId>
|
||||||
|
<LinkingMode>Automatic</LinkingMode>
|
||||||
|
<ConnectionId>16</ConnectionId>
|
||||||
|
<ConnectionMode>master</ConnectionMode>
|
||||||
|
<ConnectionType>TwinSafeScCrc1</ConnectionType>
|
||||||
|
<MapDiag>false</MapDiag>
|
||||||
|
<MapInputs>false</MapInputs>
|
||||||
|
<MapOutputs>false</MapOutputs>
|
||||||
|
<MapState>false</MapState>
|
||||||
|
<ModuleFaultIsComErr>false</ModuleFaultIsComErr>
|
||||||
|
<SafeAddress>0</SafeAddress>
|
||||||
|
<Watchdog>100</Watchdog>
|
||||||
|
<ComErrAck Type="Unset" />
|
||||||
|
<Params>
|
||||||
|
<Param Index="5632" SubIndex="0">04</Param>
|
||||||
|
<Param Index="5632" SubIndex="1">08014070</Param>
|
||||||
|
<Param Index="5632" SubIndex="2">08000000</Param>
|
||||||
|
<Param Index="5632" SubIndex="3">10034070</Param>
|
||||||
|
<Param Index="5632" SubIndex="4">10024070</Param>
|
||||||
|
<Param Index="6664" SubIndex="0">0A</Param>
|
||||||
|
<Param Index="6664" SubIndex="1">08014060</Param>
|
||||||
|
<Param Index="6664" SubIndex="2">10110060</Param>
|
||||||
|
<Param Index="6664" SubIndex="3">10034060</Param>
|
||||||
|
<Param Index="6664" SubIndex="4">10111060</Param>
|
||||||
|
<Param Index="6664" SubIndex="5">10044060</Param>
|
||||||
|
<Param Index="6664" SubIndex="6">10112060</Param>
|
||||||
|
<Param Index="6664" SubIndex="7">10054060</Param>
|
||||||
|
<Param Index="6664" SubIndex="8">10113060</Param>
|
||||||
|
<Param Index="6664" SubIndex="9">10064060</Param>
|
||||||
|
<Param Index="6664" SubIndex="10">10024060</Param>
|
||||||
|
<Param Index="32832" SubIndex="1">0000</Param>
|
||||||
|
<Param Index="32832" SubIndex="2">00000000</Param>
|
||||||
|
<Messages>
|
||||||
|
<IO>
|
||||||
|
<Name>Master Cmd</Name>
|
||||||
|
<Index>28736</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name />
|
||||||
|
<Index>0</Index>
|
||||||
|
<SubIndex>0</SubIndex>
|
||||||
|
<DataType />
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Master CRC_0</Name>
|
||||||
|
<Index>28736</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>16</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Master ConnID</Name>
|
||||||
|
<Index>28736</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>32</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave Cmd</Name>
|
||||||
|
<Index>24640</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>AI Module 1.Value</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>17</SubIndex>
|
||||||
|
<DataType>INT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_0</Name>
|
||||||
|
<Index>24640</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>24</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>AI Module 2.Value</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>17</SubIndex>
|
||||||
|
<DataType>INT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>40</BitOffsMessage>
|
||||||
|
<BitOffsData>16</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_1</Name>
|
||||||
|
<Index>24640</Index>
|
||||||
|
<SubIndex>4</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>56</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>AI Module 3.Value</Name>
|
||||||
|
<Index>24608</Index>
|
||||||
|
<SubIndex>17</SubIndex>
|
||||||
|
<DataType>INT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>72</BitOffsMessage>
|
||||||
|
<BitOffsData>32</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_2</Name>
|
||||||
|
<Index>24640</Index>
|
||||||
|
<SubIndex>5</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>88</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>AI Module 4.Value</Name>
|
||||||
|
<Index>24624</Index>
|
||||||
|
<SubIndex>17</SubIndex>
|
||||||
|
<DataType>INT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>104</BitOffsMessage>
|
||||||
|
<BitOffsData>48</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_3</Name>
|
||||||
|
<Index>24640</Index>
|
||||||
|
<SubIndex>6</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>120</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave ConnID</Name>
|
||||||
|
<Index>24640</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>136</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
</Messages>
|
||||||
|
</Params>
|
||||||
|
</SafetyAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
@@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="952577547" FileFormatVersion="1.8">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>4</Type>
|
||||||
|
<SubType>5021</SubType>
|
||||||
|
<VendorId>2</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>14</SDSID>
|
||||||
|
<SafetyAliasDevice>
|
||||||
|
<ObjectId>50921476</ObjectId>
|
||||||
|
<LinkingMode>Automatic</LinkingMode>
|
||||||
|
<ConnectionId>14</ConnectionId>
|
||||||
|
<ConnectionMode>master</ConnectionMode>
|
||||||
|
<ConnectionType>TwinSafeScCrc1</ConnectionType>
|
||||||
|
<MapDiag>false</MapDiag>
|
||||||
|
<MapInputs>false</MapInputs>
|
||||||
|
<MapOutputs>false</MapOutputs>
|
||||||
|
<MapState>false</MapState>
|
||||||
|
<ModuleFaultIsComErr>false</ModuleFaultIsComErr>
|
||||||
|
<SafeAddress>4</SafeAddress>
|
||||||
|
<Watchdog>100</Watchdog>
|
||||||
|
<ComErrAck Type="Unset" />
|
||||||
|
<Params>
|
||||||
|
<Param Index="5648" SubIndex="0">04</Param>
|
||||||
|
<Param Index="5648" SubIndex="1">08011070</Param>
|
||||||
|
<Param Index="5648" SubIndex="2">08000000</Param>
|
||||||
|
<Param Index="5648" SubIndex="3">10031070</Param>
|
||||||
|
<Param Index="5648" SubIndex="4">10021070</Param>
|
||||||
|
<Param Index="6672" SubIndex="0">0A</Param>
|
||||||
|
<Param Index="6672" SubIndex="1">08011060</Param>
|
||||||
|
<Param Index="6672" SubIndex="2">10110060</Param>
|
||||||
|
<Param Index="6672" SubIndex="3">10031060</Param>
|
||||||
|
<Param Index="6672" SubIndex="4">10000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="5">10041060</Param>
|
||||||
|
<Param Index="6672" SubIndex="6">101B0060</Param>
|
||||||
|
<Param Index="6672" SubIndex="7">10051060</Param>
|
||||||
|
<Param Index="6672" SubIndex="8">10000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="9">10061060</Param>
|
||||||
|
<Param Index="6672" SubIndex="10">10021060</Param>
|
||||||
|
<Param Index="6672" SubIndex="11">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="12">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="13">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="14">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="15">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="16">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="17">00000000</Param>
|
||||||
|
<Param Index="6672" SubIndex="18">00000000</Param>
|
||||||
|
<Param Index="32784" SubIndex="1">0400</Param>
|
||||||
|
<Param Index="32784" SubIndex="2">01000000</Param>
|
||||||
|
<Messages>
|
||||||
|
<IO>
|
||||||
|
<Name>Master Cmd</Name>
|
||||||
|
<Index>28688</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name />
|
||||||
|
<Index>0</Index>
|
||||||
|
<SubIndex>0</SubIndex>
|
||||||
|
<DataType />
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Master CRC_0</Name>
|
||||||
|
<Index>28688</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>16</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Master ConnID</Name>
|
||||||
|
<Index>28688</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>Out</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>32</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave Cmd</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>1</SubIndex>
|
||||||
|
<DataType>USINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>8</BitSize>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Counter value</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>17</SubIndex>
|
||||||
|
<DataType>UDINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>32</BitSize>
|
||||||
|
<BitOffsMessage>8</BitOffsMessage>
|
||||||
|
<BitOffsData>0</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_0</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>3</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>24</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_1</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>4</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>56</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Frequency value (int32)</Name>
|
||||||
|
<Index>24576</Index>
|
||||||
|
<SubIndex>27</SubIndex>
|
||||||
|
<DataType>DINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>SafetySil2</SafetyType>
|
||||||
|
<BitSize>32</BitSize>
|
||||||
|
<BitOffsMessage>72</BitOffsMessage>
|
||||||
|
<BitOffsData>32</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_2</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>5</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>88</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave CRC_3</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>6</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>120</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
<IO>
|
||||||
|
<Name>Slave ConnID</Name>
|
||||||
|
<Index>24592</Index>
|
||||||
|
<SubIndex>2</SubIndex>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<Direction>In</Direction>
|
||||||
|
<SafetyType>ProtocolData</SafetyType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
<BitOffsMessage>136</BitOffsMessage>
|
||||||
|
<BitOffsData>-1</BitOffsData>
|
||||||
|
</IO>
|
||||||
|
</Messages>
|
||||||
|
</Params>
|
||||||
|
</SafetyAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
18
Safety/TwinSafeGroup1/Alias Devices/ErrorAcknowledgement.sds
Normal file
18
Safety/TwinSafeGroup1/Alias Devices/ErrorAcknowledgement.sds
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="879336946" FileFormatVersion="1.5">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>1</Type>
|
||||||
|
<SubType>1</SubType>
|
||||||
|
<VendorId>0</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>1</SDSID>
|
||||||
|
<StandardAliasDevice>
|
||||||
|
<LinkingMode>Manual</LinkingMode>
|
||||||
|
<IO>
|
||||||
|
<Name>In</Name>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
</IO>
|
||||||
|
</StandardAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
18
Safety/TwinSafeGroup1/Alias Devices/iSpeedPumpA.sds
Normal file
18
Safety/TwinSafeGroup1/Alias Devices/iSpeedPumpA.sds
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="2589871646" FileFormatVersion="1.8">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>1</Type>
|
||||||
|
<SubType>7</SubType>
|
||||||
|
<VendorId>0</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>11</SDSID>
|
||||||
|
<StandardAliasDevice>
|
||||||
|
<LinkingMode>Manual</LinkingMode>
|
||||||
|
<IO>
|
||||||
|
<Name>In</Name>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<DataType>UINT</DataType>
|
||||||
|
<BitSize>16</BitSize>
|
||||||
|
</IO>
|
||||||
|
</StandardAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
18
Safety/TwinSafeGroup1/Alias Devices/xResetEStop.sds
Normal file
18
Safety/TwinSafeGroup1/Alias Devices/xResetEStop.sds
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<SafetyDeviceDesc Crc="1910572904" FileFormatVersion="1.8">
|
||||||
|
<AliasDeviceType>
|
||||||
|
<Type>1</Type>
|
||||||
|
<SubType>1</SubType>
|
||||||
|
<VendorId>0</VendorId>
|
||||||
|
</AliasDeviceType>
|
||||||
|
<SDSID>7</SDSID>
|
||||||
|
<StandardAliasDevice>
|
||||||
|
<LinkingMode>Manual</LinkingMode>
|
||||||
|
<IO>
|
||||||
|
<Name>In</Name>
|
||||||
|
<BitOffsMessage>0</BitOffsMessage>
|
||||||
|
<DataType>BIT</DataType>
|
||||||
|
<BitSize>1</BitSize>
|
||||||
|
</IO>
|
||||||
|
</StandardAliasDevice>
|
||||||
|
</SafetyDeviceDesc>
|
||||||
659
Safety/TwinSafeGroup1/TwinSafeGroup1.sal
Normal file
659
Safety/TwinSafeGroup1/TwinSafeGroup1.sal
Normal file
@@ -0,0 +1,659 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<safetyApplication Crc="3030095929" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.4.0.0" Id="b3f318f7-44dd-4ebe-b7a5-aa804e6092b9" name="" mapState="false" mapDiag="false" groupOrderId="0" passificationAllowed="false" temporaryDeactivationAllowed="false" permamentDeactivationAllowed="false" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
|
||||||
|
<networks>
|
||||||
|
<safetyApplicationHasNetworks Id="8e558121-9215-4cf6-9a08-f88d55d28f6f">
|
||||||
|
<Network Id="11ae6bc0-d263-4532-813f-097c81fdac5f" name="Network21" networkName="Speed" intId="3" networkOrderId="0">
|
||||||
|
<functionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="3ee95eca-6c59-4820-8fd4-445cd24cca70">
|
||||||
|
<fBSpeed Id="d9fc0a8a-28b4-4186-8a59-6aeaa007f8d5" name="FBSpeed1" instanceName="FBSpeed1" orderOfExecution="1" mapState="false" mapDiag="false" functionName="safeSpeed">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="3f440dea-524f-4933-bc5c-ce96c5dfe1a1">
|
||||||
|
<inPort Id="e8aec1d8-c4c2-4862-b43c-5e95ad806a09" name="Position" portName="Position" portNum="2" objectIndex="16" varId="1" filter="1974016" portDataType="4" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="102cadee-9fec-4a6a-8bf2-f05bde365499">
|
||||||
|
<outPort Id="54522b74-b598-43ef-9981-8f6470fc8b31" name="Error" portName="Error" portNum="3" objectIndex="0" varId="2" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="b94a54b0-6eeb-4e03-a9ab-86ab024233db">
|
||||||
|
<outPort Id="6f8da5a1-3478-474e-915c-441ff0a27a1c" name="Speed" portName="Speed" portNum="4" objectIndex="1" varId="3" filter="1974016" portDataType="2" replacementValue="0">
|
||||||
|
<targetFunctionBlockPorts>
|
||||||
|
<wiredLink Id="482441d8-539d-41b3-b700-f2b84a1569d6">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn1" />
|
||||||
|
</wiredLink>
|
||||||
|
</targetFunctionBlockPorts>
|
||||||
|
</outPort>
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
<parameterPorts>
|
||||||
|
<functionBlockHasParamPorts Id="a9a1fdc9-5d92-40b6-8ff5-b16a77dfae1e">
|
||||||
|
<parameterPort Id="3522b171-0523-4674-bc88-21e548b6fb39" name="Time Interval (ms)" portName="Time Interval (ms)" portNum="4" objectIndex="0" varId="0" filter="0" portDataType="0" timing="100" userFbPortName="Time Interval (ms)" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
</parameterPorts>
|
||||||
|
</fBSpeed>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="64686e91-9e8f-4493-b54e-c60c9c205c32">
|
||||||
|
<fBScaling Id="50099f61-e9dc-4c5f-840f-263d651f116c" name="FBScaling1" instanceName="FBScaling1" orderOfExecution="2" mapState="false" mapDiag="false" functionName="safeScaling">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="6faafa7c-5bb9-4d1c-bb0b-a8cc6a969d73">
|
||||||
|
<inPort Id="7ac5d7bb-dc1d-4efd-ba9b-fa3f5a4af907" name="AnalogIn" portName="AnalogIn" portNum="3" objectIndex="16" varId="1" filter="1974016" portDataType="2" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="a40ad186-2653-4d6b-9ba8-2d1e50b68930">
|
||||||
|
<outPort Id="eeabb3dd-7623-4e12-b747-5811fd4c4adc" name="Error" portName="Error" portNum="3" objectIndex="0" varId="2" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="02bca269-d02a-4fd2-9aa4-6a178137023f">
|
||||||
|
<outPort Id="92763d12-8951-4ac9-acb2-f2f6b87ccad0" name="StuckAtError" portName="StuckAtError" portNum="4" objectIndex="1" varId="3" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="09d85545-19e5-4bde-b4ac-265e85f19be6">
|
||||||
|
<outPort Id="83615109-a464-4ec5-a5a6-5d6eacda6cff" name="AnalogOut" portName="AnalogOut" portNum="5" objectIndex="16" varId="4" filter="1974016" portDataType="2" replacementValue="0">
|
||||||
|
<targetFunctionBlockPorts>
|
||||||
|
<wiredLink Id="5922d18c-f030-4a6b-8f55-406ffd6fe56c">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn2" />
|
||||||
|
</wiredLink>
|
||||||
|
</targetFunctionBlockPorts>
|
||||||
|
</outPort>
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
<parameterPorts>
|
||||||
|
<functionBlockHasParamPorts Id="715a06fa-f4e8-4440-a9e5-7d10dbd24770">
|
||||||
|
<parameterPort Id="4a9a41f5-7965-4b9f-8261-a0f7d3b65d6e" name="Scaling Factor Multiplier" portNum="5" objectIndex="0" varId="0" filter="0" portDataType="0" timing="1" userFbPortName="Scaling Factor Multiplier" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
<functionBlockHasParamPorts Id="b2a4bae7-f0f9-4d62-886c-b3176b604640">
|
||||||
|
<parameterPort Id="4b3a5b08-fc2e-4f98-9b41-fcbfd9afa15d" name="Scaling Factor Divisor" portName="Scaling Factor" portNum="6" objectIndex="0" varId="0" filter="0" portDataType="0" timing="1" userFbPortName="Scaling Factor Divisor" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
<functionBlockHasParamPorts Id="87276ec4-9476-4711-8a41-d35cea304e4e">
|
||||||
|
<parameterPort Id="6523e3be-de88-4e60-87fa-45f1a92af431" name="Scaling Offset" portName="Scaling Offset" portNum="7" objectIndex="0" varId="0" filter="0" portDataType="0" timing="0" userFbPortName="Scaling Offset" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
<functionBlockHasParamPorts Id="2832703b-5a76-4f2d-af70-366384d587ad">
|
||||||
|
<parameterPort Id="74b5be91-5733-4792-881d-c8473734d32d" name="Watchdog (ms)" portName="Watchdog (ms)" portNum="8" objectIndex="0" varId="0" filter="0" portDataType="0" timing="0" userFbPortName="Watchdog (ms)" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
</parameterPorts>
|
||||||
|
</fBScaling>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="90f8acf5-329a-43bf-bc5c-1899e6480949">
|
||||||
|
<fBCompare Id="e7787ea6-111f-4b61-b27d-93874997e7d8" name="FBCompare1" instanceName="FBCompare1" orderOfExecution="3" mapState="false" mapDiag="false" functionName="safeCompare" compareMode="1">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="455898f0-e22c-46db-b7c1-2066d7dcfa7d">
|
||||||
|
<inPort Id="2fa31ca6-fd7a-43a2-b928-30c3c0af03ad" name="CompIn1" portName="CompIn1" portNum="2" objectIndex="16" varId="1" filter="1974016" portDataType="2" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="c70bab8f-6363-4416-a466-edae99b67b76">
|
||||||
|
<inPort Id="6d9ca0d8-c959-4829-a09c-2012fb88d874" name="CompIn2" portName="CompIn2" portNum="3" objectIndex="17" varId="2" filter="1974016" portDataType="2" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="d30f1a03-e5b6-48d8-b1a9-5b4becbd24a3">
|
||||||
|
<inPort Id="2c71b282-1a63-4539-99e2-fe0331dae7b0" name="CompIn3" portName="CompIn3" portNum="4" objectIndex="18" varId="3" filter="1974016" portDataType="2" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="244910ae-6fb4-49ba-8b89-c6677e97ce28">
|
||||||
|
<inPort Id="e9d019fc-4f70-40e9-b6b9-a6e0cffbb649" name="CompIn4" portName="CompIn4" portNum="5" objectIndex="19" varId="4" filter="1974016" portDataType="2" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="950d11c3-15b7-4317-8c4a-d3041c176859">
|
||||||
|
<inPort Id="87205079-b160-4cdc-b67f-137ed8cb2ac6" name="CompIn5" portName="CompIn5" portNum="6" objectIndex="20" varId="5" filter="1974016" portDataType="2" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="39e2f843-4bf5-4e06-80cd-78e2c84ea93f">
|
||||||
|
<outPort Id="49b5592d-9381-459c-a9f9-5ef537f77dcf" name="Error" portName="Error" portNum="3" objectIndex="0" varId="6" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="c28160a5-8e0e-42da-827c-c9a9b32e0672">
|
||||||
|
<outPort Id="8f86e1f7-42ea-456c-8e86-115e6da5317b" name="IsValid" portName="IsValid" portNum="4" objectIndex="1" varId="7" filter="73472" portDataType="1" replacementValue="0">
|
||||||
|
<targetFunctionBlockPorts>
|
||||||
|
<wiredLink Id="f1538b15-a353-4670-b8a0-582bf63af946">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn1" />
|
||||||
|
</wiredLink>
|
||||||
|
</targetFunctionBlockPorts>
|
||||||
|
</outPort>
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="ff354865-57d6-48b4-9ad0-076677a32248">
|
||||||
|
<outPort Id="74737aa8-f5e8-4e26-81a7-e3d39b89bf52" name="CompOut" portName="CompOut" portNum="5" objectIndex="2" varId="8" filter="1974016" portDataType="2" replacementValue="0">
|
||||||
|
<targetFunctionBlockPorts>
|
||||||
|
<wiredLink Id="1e4f8e63-feb2-43e2-902f-adb5fe1d07c2">
|
||||||
|
<inPortMoniker name="//Network21/FBLimit1/AnalogIn" />
|
||||||
|
</wiredLink>
|
||||||
|
</targetFunctionBlockPorts>
|
||||||
|
</outPort>
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
<parameterPorts>
|
||||||
|
<functionBlockHasParamPorts Id="12a5f33d-9013-4525-b129-e19aab100457">
|
||||||
|
<parameterPort Id="7b3fdbbc-2237-4113-8349-75b51681e2b3" name="Allowed deviation" portName="Allowed deviation" portNum="6" objectIndex="0" varId="0" filter="0" portDataType="0" timing="100" userFbPortName="Allowed deviation" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
<functionBlockHasParamPorts Id="3aef9891-f4b3-4b6b-9ed4-cb144b77bf40">
|
||||||
|
<parameterPort Id="803308d2-a9c8-41ac-8b5d-f78a8f189b5c" name="Tolerance time (ms)" portName="Tolerance time (ms)" portNum="7" objectIndex="0" varId="0" filter="0" portDataType="0" timing="500" userFbPortName="Tolerance time (ms)" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
</parameterPorts>
|
||||||
|
</fBCompare>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="657bf7a1-f660-461d-97e6-39b55aa0803b">
|
||||||
|
<fBLimit Id="67ca14f5-deda-418d-8273-94716a0637ed" name="FBLimit1" instanceName="FBLimit1" orderOfExecution="4" mapState="false" mapDiag="false" functionName="safeLimit">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="7f217472-86c0-4d18-aa5e-0bf4928f808d">
|
||||||
|
<inPort Id="3aa75659-3322-4af4-8cff-f59c54d64fb9" name="AnalogIn" portName="AnalogIn" portNum="2" objectIndex="16" varId="1" filter="1974016" portDataType="2" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="a852d622-2fc5-44a9-86ce-d05d7a6cf14b">
|
||||||
|
<inPort Id="a0e6a728-43d8-4170-8e94-5761b19fc505" name="MinValue" portName="MinValue" portNum="3" objectIndex="17" varId="2" filter="1974016" portDataType="2" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="9444b6f9-1eee-4fe3-90fa-100f75aea9a9">
|
||||||
|
<inPort Id="2d52106c-0505-478d-be8d-53684d5ced52" name="MaxValue" portName="MaxValue" portNum="4" objectIndex="18" varId="3" filter="1974016" portDataType="2" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="69059b11-c933-4c60-b1fa-9d937891b0ac">
|
||||||
|
<outPort Id="130a5430-2001-4bc0-96f9-06325cb8bf2d" name="Error" portName="Error" portNum="2" objectIndex="0" varId="4" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="dd6f99bc-f648-4f44-8d0e-cb633b5b0b66">
|
||||||
|
<outPort Id="22c32434-13cc-4759-a7ba-750e3ddd6bbc" name="InLimit" portName="InLimit" portNum="3" objectIndex="1" varId="5" filter="73472" portDataType="1" replacementValue="0">
|
||||||
|
<targetFunctionBlockPorts>
|
||||||
|
<wiredLink Id="87c23819-4291-4102-a056-190d92a9b310">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn1" />
|
||||||
|
</wiredLink>
|
||||||
|
</targetFunctionBlockPorts>
|
||||||
|
</outPort>
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="2bf44404-144f-4dc0-8f65-f39f12563ae1">
|
||||||
|
<outPort Id="7171fc09-1ced-4b75-bea9-4c66fc0b85a9" name="BelowMin" portName="BelowMin" portNum="4" objectIndex="2" varId="6" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="1e9049cb-e925-4540-b504-c22686b4af21">
|
||||||
|
<outPort Id="63d64289-6ae3-41f8-ad8e-5a489407e3d8" name="AboveMax" portName="AboveMax" portNum="5" objectIndex="3" varId="7" filter="73472" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
<parameterPorts>
|
||||||
|
<functionBlockHasParamPorts Id="2ecc7720-0f41-432f-9eae-9b5f7903abae">
|
||||||
|
<parameterPort Id="da8515e7-01a6-42bb-bd99-e3761c674b0b" name="Minimum Value" portName="Minimum Value" portNum="5" objectIndex="0" varId="0" filter="0" portDataType="0" timing="500" userFbPortName="Minimum Value" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
<functionBlockHasParamPorts Id="c8b45bf1-c7c8-4d01-b2e7-cd075d9f0f49">
|
||||||
|
<parameterPort Id="05030e73-3714-4f6a-a88d-5f5663c35259" name="Maximum Value" portName="Maximum Value" portNum="6" objectIndex="0" varId="0" filter="0" portDataType="0" timing="4000" userFbPortName="Maximum Value" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
</parameterPorts>
|
||||||
|
</fBLimit>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="51df3eb3-eeec-4af7-bf4f-4c26b4b0f20c">
|
||||||
|
<fBOr Id="0dfbf551-231c-4a61-ab08-8fae07cffe4a" name="FBOr1" instanceName="FBOr1" orderOfExecution="6" mapState="false" mapDiag="false" functionName="safeOr">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="f5e80e98-829c-47bc-8d0f-806ba65cea70">
|
||||||
|
<inPort Id="765840d9-877a-4830-b52b-f87216954cac" name="OrIn1" portName="OrIn1" portNum="2" objectIndex="8" varId="2" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="f01d0abc-4092-43e0-b0c9-db32c27ad07c">
|
||||||
|
<inPort Id="e74f35e8-27ff-4fc6-8572-a52a1ad735ad" name="OrIn2" portName="OrIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="ceec7192-360d-43b7-8a03-01a9a908a9f7">
|
||||||
|
<inPort Id="8a905f22-8fac-4cea-bbcc-d0f762b028ee" name="OrIn3" portName="OrIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="c29c2828-5abf-486a-8371-6bd248b9d952">
|
||||||
|
<inPort Id="7d87c4f7-5cf7-424a-b4b6-176df109c264" name="OrIn4" portName="OrIn4" portNum="5" objectIndex="11" varId="5" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="6b2edcb2-5236-4b4d-acbc-ef10294768ed">
|
||||||
|
<inPort Id="53544d6c-92d2-4025-a8ee-270cde9c7ec8" name="OrIn5" portName="OrIn5" portNum="6" objectIndex="12" varId="6" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="7b966eed-93c5-4772-ae9e-2423db621108">
|
||||||
|
<inPort Id="2ffd728a-c482-4715-a69f-4c0b2aa27a18" name="OrIn6" portName="OrIn6" portNum="7" objectIndex="13" varId="7" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="e28f4616-2477-43c1-8e4e-54a4f891e3fe">
|
||||||
|
<inPort Id="412f146a-fd34-459f-b7dd-4a193370f46e" name="OrIn7" portName="OrIn7" portNum="8" objectIndex="14" varId="8" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="e02cdc2e-825e-4360-aa3b-0242e210c35f">
|
||||||
|
<inPort Id="3d7de4cd-7299-416c-a254-259f8d9ed0fc" name="OrIn8" portName="OrIn8" portNum="9" objectIndex="15" varId="9" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="1554ecc9-a3b2-42ff-a5bc-067765ff7a48">
|
||||||
|
<outPort Id="1494d3b5-cce7-466d-a45d-09c80aa38d25" name="OrOut" portName="OrOut" portNum="8" objectIndex="1" varId="20" filter="7" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
</fBOr>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="679eff9a-547a-480d-b671-afa704e65bb7">
|
||||||
|
<fBOr Id="53918bc6-8d80-4902-a0a4-f145b0fc229e" name="FBOr2" instanceName="FBOr2" orderOfExecution="5" mapState="false" mapDiag="false" functionName="safeOr">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="07854633-a411-4808-a4d2-fe4ecb88ce2c">
|
||||||
|
<inPort Id="566466c3-7889-44a8-8e95-e119948ffcda" name="OrIn1" portName="OrIn1" portNum="2" objectIndex="8" varId="2" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="aea415df-1471-4bf5-9ac4-5d22878bf2c4">
|
||||||
|
<inPort Id="aa994dd0-2af5-4174-ab09-dec30efe6c12" name="OrIn2" portName="OrIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Make Contact (NO)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="6b7b76d9-ee0f-41ec-8081-f903796b7a45">
|
||||||
|
<inPort Id="1dc05aef-a383-44d2-b7a4-de0d008982d6" name="OrIn3" portName="OrIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="5233e88d-7d28-490e-a20d-ba15e8da8b99">
|
||||||
|
<inPort Id="609d4a13-65c2-4ca7-9cc3-e13b362d3f4d" name="OrIn4" portName="OrIn4" portNum="5" objectIndex="11" varId="5" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="80420b0c-3997-4b8a-baf2-fa903c18f7e2">
|
||||||
|
<inPort Id="672e7137-03fb-493b-ba6b-d83cf106763e" name="OrIn5" portName="OrIn5" portNum="6" objectIndex="12" varId="6" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="79f1fff8-4fbf-455b-a9fa-9858360d0457">
|
||||||
|
<inPort Id="a5489792-7ff2-4093-bc53-fbdd12680305" name="OrIn6" portName="OrIn6" portNum="7" objectIndex="13" varId="7" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="1be9574c-56cc-4a6c-b15c-a19a571831dd">
|
||||||
|
<inPort Id="0346f5b9-c8d6-406f-9e9f-3e756ce6346f" name="OrIn7" portName="OrIn7" portNum="8" objectIndex="14" varId="8" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="1e7ee10f-41d7-414c-8639-17c2ef7e4fed">
|
||||||
|
<inPort Id="e6a1e009-6d96-4a45-a6bb-347a6c8ee8d2" name="OrIn8" portName="OrIn8" portNum="9" objectIndex="15" varId="9" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="4a982935-0724-4d8e-a95e-e734db6bbea2">
|
||||||
|
<outPort Id="1ad371c1-8ecf-4194-bf56-c60e140a9d5f" name="OrOut" portName="OrOut" portNum="8" objectIndex="1" varId="20" filter="7" portDataType="1" replacementValue="0">
|
||||||
|
<targetFunctionBlockPorts>
|
||||||
|
<wiredLink Id="22f90d46-386f-4a68-bfe8-4c03375d6655">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn2" />
|
||||||
|
</wiredLink>
|
||||||
|
</targetFunctionBlockPorts>
|
||||||
|
</outPort>
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
</fBOr>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
</functionBlocks>
|
||||||
|
</Network>
|
||||||
|
</safetyApplicationHasNetworks>
|
||||||
|
<safetyApplicationHasNetworks Id="05ca0842-72c4-42c7-a7c6-68dbab0d0d21">
|
||||||
|
<Network Id="1baac045-5dbb-42d8-98a6-d8a32439a912" name="Network2" networkName="EStop" intId="4" networkOrderId="1">
|
||||||
|
<functionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="180c1b9a-2d60-42eb-9e30-d0bdfc9bff9d">
|
||||||
|
<fBEstop Id="0496e98b-6903-4061-9c09-0375ac63f0aa" name="FBEstop1" instanceName="FBEstop2" orderOfExecution="7" mapState="false" mapDiag="false" functionName="safeEstop" safeInputsAfterDiscError="true">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="bc633bf1-358b-4b1d-92b6-370c6f9746e5">
|
||||||
|
<inPort Id="571e6b1c-6655-46e0-b272-732ca80d85d9" name="Restart" portName="Restart" portNum="2" objectIndex="0" varId="1" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="75eb39db-495f-4e9e-9768-ca415e6b3586">
|
||||||
|
<inPort Id="72a73e21-a10b-4efd-968d-accba3d08de6" name="EStopIn1" portName="EStopIn1" portNum="4" objectIndex="8" varId="3" filter="2" portDataType="1" channelInterface="Two-Channel" discrepancyTime="100" deactivate1="Break Contact (NC)" deactivate2="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="65d5803c-f967-485b-a7ca-f877b6cf42e5">
|
||||||
|
<inPort Id="1fdb031e-b797-482c-b6ff-e9c67f8b189b" name="EStopIn2" portName="EStopIn2" portNum="5" objectIndex="9" varId="4" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="ddf50537-13cc-4cc1-8d91-df556a10932b">
|
||||||
|
<inPort Id="8c638bf4-4836-4538-84bb-c39ef8b9ad4b" name="EStopIn3" portName="EStopIn3" portNum="6" objectIndex="10" varId="5" filter="2" portDataType="1" channelInterface="Single-Channel 1 Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="4e429f9d-c7ba-401f-8cb5-986dc16a768a">
|
||||||
|
<inPort Id="47d34b63-ff99-4aaf-9e00-6c23414325c4" name="EStopIn4" portName="EStopIn4" portNum="7" objectIndex="11" varId="6" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="c93d8217-4ca0-4434-b82e-9d6216824785">
|
||||||
|
<inPort Id="b1124734-a2a1-4fa2-9607-8964918fc015" name="EStopIn5" portName="EStopIn5" portNum="8" objectIndex="12" varId="7" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="4a46a123-5fbc-4b56-acab-33b80440124e">
|
||||||
|
<inPort Id="c779ee33-30a8-49a2-b8a1-9136789ac25a" name="EStopIn6" portName="EStopIn6" portNum="9" objectIndex="13" varId="8" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="6ab5013d-7814-4cbc-83b0-4e7e801fda55">
|
||||||
|
<inPort Id="55c5ddf3-7e18-4911-9b35-847f2bffa547" name="EStopIn7" portName="EStopIn7" portNum="10" objectIndex="14" varId="9" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="8d89c61e-7fe3-4146-882e-06e2e3e6766c">
|
||||||
|
<inPort Id="0add347c-b95b-45cc-b9a4-face5d40767d" name="EStopIn8" portName="EStopIn8" portNum="11" objectIndex="15" varId="10" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="494e2c6d-6ead-477f-9e0b-3dda6989ab8e">
|
||||||
|
<inPort Id="d4c80dfd-3e6b-4ed3-9161-976043a2223d" name="EDM1" portName="EDM1" portNum="13" objectIndex="1" varId="12" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="aa71a705-2266-44cf-beed-f4fe35224622">
|
||||||
|
<inPort Id="31ab607f-0301-4494-9879-43db7037dc9a" name="EDM2" portName="EDM2" portNum="14" objectIndex="2" varId="13" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="8b0f4af3-54bc-41bb-a127-8f56f488cc11">
|
||||||
|
<outPort Id="3719e190-c2ff-4c3c-893c-772ed8633046" name="Error" portName="Error" portNum="4" objectIndex="0" varId="16" filter="7" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="7f6d4503-c070-4d32-9d81-e3b174e74f21">
|
||||||
|
<outPort Id="73d7d0aa-e245-4675-8dea-ca5e266695fd" name="EStopOut" portName="EStopOut" portNum="11" objectIndex="1" varId="23" filter="7" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
<functionBlockHasOutPorts Id="1ceb99b7-36b0-427f-a331-73632ff35bc1">
|
||||||
|
<outPort Id="1d03883f-8b65-401a-b9a8-6a580458d27f" name="EStopDelOut" portName="EStopDelOut" portNum="12" objectIndex="2" varId="26" filter="7" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
<parameterPorts>
|
||||||
|
<functionBlockHasParamPorts Id="96d68c94-01ea-4718-b968-7be00b56b0f3">
|
||||||
|
<parameterPort Id="8355dde1-16b5-4135-8817-ca67b8bf3d75" name="Delay Time (ms)" portName="Delay Time (ms)" portNum="8" objectIndex="0" varId="0" filter="0" portDataType="0" timing="100" userFbPortName="Delay Time (ms)" useInUserFb="false" />
|
||||||
|
</functionBlockHasParamPorts>
|
||||||
|
</parameterPorts>
|
||||||
|
</fBEstop>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
<networkHasUserFunctionBlocks Id="64769767-ba13-4658-afed-3233d920e537">
|
||||||
|
<userFunctionBlock Id="36ff2554-0605-420f-b043-4effa33342ab" name="UserFunctionBlock1" instanceName="UserFB" orderOfExecution="8" schematicGuid="40362a3f-2d6f-4ed4-899e-f95e68783932" libraryGuid="00000000-0000-0000-0000-000000000000" ufbDefCrc="904853738">
|
||||||
|
<inPorts>
|
||||||
|
<userFunctionBlockHasInPorts Id="4d1a7758-5c6e-402b-9d3c-16ff3924a1aa">
|
||||||
|
<metaInPort Id="259e2a50-fa18-40f1-b11c-65640048189b" name="AnySignal" portName="AnySignal" portNum="1" objectIndex="0" varId="2" filter="2" portDataType="1" maxDeviation="0" resetTime="0" schematicVarId="abfa5f60-fb3e-4982-ad23-5a9f298288d8" />
|
||||||
|
</userFunctionBlockHasInPorts>
|
||||||
|
<userFunctionBlockHasInPorts Id="3589c900-ee3c-48df-b333-532675e418e3">
|
||||||
|
<metaInPort Id="e2363887-052a-44a3-89e3-1b548deb128a" name="AnySignal_" portName="AnySignal_" portNum="2" objectIndex="0" varId="3" filter="2" portDataType="1" maxDeviation="0" resetTime="0" schematicVarId="d2b59abb-f6b2-44b8-8e6c-9a7f79516f83" />
|
||||||
|
</userFunctionBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<userFunctionBlockHasOutPorts Id="2ec40e18-3bfd-479f-a149-ddd7798782fa">
|
||||||
|
<metaOutPort Id="a4a3adbb-dc6b-4a71-8e8e-928af7374a75" name="AlwaysTrue" portName="AlwaysTrue" portNum="1" objectIndex="1" varId="20" filter="7" portDataType="1" replacementValue="0" schematicVarId="dcc233fa-9924-4295-aec8-ce87c9312e1a" />
|
||||||
|
</userFunctionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
</userFunctionBlock>
|
||||||
|
</networkHasUserFunctionBlocks>
|
||||||
|
</functionBlocks>
|
||||||
|
</Network>
|
||||||
|
</safetyApplicationHasNetworks>
|
||||||
|
</networks>
|
||||||
|
<twinSAFEGroupAliasPorts>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="ed5431ad-1ede-4b74-a7f6-cf582d1beb55">
|
||||||
|
<twinSAFEGroupAliasPort Id="133a7627-e8b0-4abd-979c-2ffb91ca0a2c" name="ErrAck" sdsId="0" channelId="0" portName="ErrAck" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="fff676ff-274a-4c67-9c45-c171a233e252">
|
||||||
|
<twinSAFEGroupAliasPort Id="d3ac60e4-8fd1-48bf-ae71-cb6287bbb383" name="RunStop" sdsId="0" channelId="0" portName="RunStop" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="c2a73640-9509-4f9b-9c80-24251dbc077d">
|
||||||
|
<twinSAFEGroupAliasPort Id="444fc5bd-a925-447f-8512-8f9f47887790" name="ModuleFault" sdsId="0" channelId="0" portName="ModuleFault" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="56fc96e3-ee1f-46e1-add8-e92b110c31df">
|
||||||
|
<twinSAFEGroupAliasPort Id="636de43d-6a4a-4b9a-9295-0b0c6f335f34" name="FbErr" sdsId="0" channelId="0" portName="FbErr" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="7f7071a9-edb1-4cf8-81b9-afd69aeeb924">
|
||||||
|
<twinSAFEGroupAliasPort Id="39375001-a83c-4a7d-bfec-875ee37fc499" name="ComErr" sdsId="0" channelId="0" portName="ComErr" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="91bb2b8b-4a0e-47dd-b988-e9a59ad003e7">
|
||||||
|
<twinSAFEGroupAliasPort Id="81b62f84-41be-4f29-ad32-8277560e5a9f" name="OutErr" sdsId="0" channelId="0" portName="OutErr" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="0a4e5b2a-89fd-4d8e-98ba-459d214a3514">
|
||||||
|
<twinSAFEGroupAliasPort Id="2218d982-d163-46bd-9cd3-b9b097ce964c" name="OtherErr" sdsId="0" channelId="0" portName="OtherErr" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="fa2530ac-f9f2-4b9e-90c1-0fe293b163ee">
|
||||||
|
<twinSAFEGroupAliasPort Id="699356e9-ba45-457f-b2f2-dc1db20e4879" name="ComStartup" sdsId="0" channelId="0" portName="ComStartup" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="46ddc417-ae91-4c69-83ca-9b8edeed8b87">
|
||||||
|
<twinSAFEGroupAliasPort Id="e5314d91-01ea-4226-95f3-ed1fa4d937f6" name="FbDeactive" sdsId="0" channelId="0" portName="FbDeactive" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="3fb93e3c-1461-4d77-81e4-c221672c7e90">
|
||||||
|
<twinSAFEGroupAliasPort Id="28a0f117-14f7-4fbc-a6ca-1f9acab7c1d1" name="FbRun" sdsId="0" channelId="0" portName="FbRun" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
<safetyApplicationHasTwinSAFEGroupAliasPort Id="d7ea9d93-d55c-4efd-8360-eefac0ed42ef">
|
||||||
|
<twinSAFEGroupAliasPort Id="3ee1a735-d7b0-4b11-abb9-9c80e926b26b" name="InRun" sdsId="0" channelId="0" portName="InRun" functionId="0" />
|
||||||
|
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||||
|
</twinSAFEGroupAliasPorts>
|
||||||
|
<variables>
|
||||||
|
<safetyApplicationHasVariables Id="18a2b196-2789-4b6d-ae37-bfc538c248e8">
|
||||||
|
<variable Id="19c273a2-41c3-4487-be99-7fa1bd483a11" name="GroupPort_ErrAck" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="9217d67e-953d-40c1-85c4-02e11ddb500f">
|
||||||
|
<variableUsages Id="cac1d3d0-aedc-425c-8ca6-9fc619804aa7">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="c4430fdf-c181-4082-89e8-ad49e0e57533">
|
||||||
|
<aliasDeviceIoUsage Id="dd80ea4a-c68c-4d96-bceb-4b1221c0deac" sdsId="1" channelId="1" functionId="0" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="bd7552d6-026a-41f2-8211-28e0a90b90bf">
|
||||||
|
<variableUsages Id="5ccbca08-1f3c-4308-8ab6-da7d7b854fa2">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="0d8ea171-0227-4bad-81f7-b4069a055b05">
|
||||||
|
<groupPortUsage Id="df7f32fa-8b44-4f17-ae12-d7e1999294ec">
|
||||||
|
<twinSAFEGroupAliasPort>
|
||||||
|
<groupPortUsageReferencesTwinSAFEGroupAliasPort Id="e4bba306-6138-410a-a7d4-103c2413ee5d">
|
||||||
|
<twinSAFEGroupAliasPortMoniker name="//ErrAck" />
|
||||||
|
</groupPortUsageReferencesTwinSAFEGroupAliasPort>
|
||||||
|
</twinSAFEGroupAliasPort>
|
||||||
|
</groupPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="8679cfbb-53d1-474e-b74c-9fde6f3ac1cc">
|
||||||
|
<variable Id="7c91c969-8a33-4336-9892-20a645721516" name="xEStopReset" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="063d7428-37e0-4c8b-803f-7a973a110ae0">
|
||||||
|
<variableUsages Id="d3bd1207-8312-4a47-8cbf-1b37b61dfc37">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="bd8b94a3-a568-47c2-8e19-4b5faae6df60">
|
||||||
|
<aliasDeviceIoUsage Id="b1f7fffe-9aec-400e-b580-d491aa2759ec" sdsId="7" channelId="1" functionId="1131179973" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="69925915-9d4a-435a-85a5-c89b383582a3">
|
||||||
|
<variableUsages Id="78980df6-6420-4fd0-b298-1f11c36a8d2c">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="e2ba2e97-ee40-417c-8e85-b72323d22a83">
|
||||||
|
<fbPortUsage Id="c82a5e5e-955a-4f8c-8854-ce630f7a3393">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="8ab899d1-02e1-4a09-a834-5f59e25f4971">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/Restart" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="45333229-a336-4196-a46f-c751b9773e58">
|
||||||
|
<variable Id="4692626f-6cd5-4196-928f-4c40651724be" name="xSwitchEStopChA" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="2ff93238-3468-4e6b-abe4-0019829afb3f">
|
||||||
|
<variableUsages Id="63995fb0-e46d-4f44-9d0c-4561c0b2d6eb">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="6744ddb8-7e70-4dd8-be43-348b06f7581c">
|
||||||
|
<aliasDeviceIoUsage Id="49a819a1-5a99-483e-96bf-ea64ec72a104" sdsId="2" channelId="1" functionId="1610678529" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="65dea95c-ebb4-4370-b5a3-b51fb69b3748">
|
||||||
|
<variableUsages Id="32829330-4d7f-454d-9ec5-2602c2c184ed">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="2606c3fc-f527-4043-84dd-9d4415faf72d">
|
||||||
|
<fbPortUsage Id="17395517-b3e8-4920-af1e-05ad3e0633ef">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="0bdb9987-c101-46b3-95d4-d4e89e88810e">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn1" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="7bb5d339-91e7-49a2-91ba-20a40a3cf573">
|
||||||
|
<variable Id="f35c16ae-aeae-42b5-9e53-54c9e84eddbb" name="xSwitchEStopChB" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="0507620b-9bdc-4914-aa8a-24ae22b141cf">
|
||||||
|
<variableUsages Id="721dc917-cec1-4e7d-8bd1-43ec4538e720">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="3778f8c5-1ca1-45c8-98b2-7c5f085c428a">
|
||||||
|
<aliasDeviceIoUsage Id="ec821bd6-ac9d-474f-9dca-15290fd7a9e7" sdsId="2" channelId="2" functionId="1610678785" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="a32196fc-aeaf-48d2-9425-88d7645f8e61">
|
||||||
|
<variableUsages Id="9fbdb8d4-e86e-47ec-9619-3af8ac087f21">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="bf16b85e-3c0d-4632-a2aa-5e35b2abf912">
|
||||||
|
<fbPortUsage Id="a3716b22-e340-41a1-83fd-6b10d9218ed4">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="6cea5bae-d5ab-4d5a-9458-0ceb2249b398">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn2" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="0ff16fd7-07f1-4c64-b7da-657ed098c7c8">
|
||||||
|
<variable Id="557e6182-7517-41d9-a595-3f41e9690f91" name="uiPositionPumpPosolyt" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="b6929ac7-cd4f-42c5-962d-91da503d4081">
|
||||||
|
<variableUsages Id="466e8cc7-6c32-4060-9071-1c9bbdc94f17">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="3e361e7f-69a2-42ce-93b2-db318376428a">
|
||||||
|
<aliasDeviceIoUsage Id="3b8ec293-f7cd-409f-887d-9182d418d6f5" sdsId="14" channelId="1" functionId="1610617104" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="5a1dd7f0-a71f-4208-b659-057d284d6625">
|
||||||
|
<variableUsages Id="cb48b1b3-7280-401b-9da6-2c081c3f893d">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="ae8b24ed-1abd-45bc-97e3-9da78adfcc6a">
|
||||||
|
<fbPortUsage Id="13270798-38c4-4847-9ae2-e5ab0d9d924c">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="5268cfa6-2278-49f0-9cd0-19d474af3d64">
|
||||||
|
<inPortMoniker name="//Network21/FBSpeed1/Position" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="e4992ad6-f2ca-4a18-9d12-d4a4e2faf508">
|
||||||
|
<variable Id="131a4925-d4dd-4ba2-8474-bc3038679f86" name="rSpeedPumpPosolyt" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="e2adc22b-0d00-4ae6-a155-b1089039e56a">
|
||||||
|
<variableUsages Id="1b746376-c5a6-4b25-8471-4e80c91e8b62">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="39981e48-d0b8-4038-9cf7-9b5b077440ab">
|
||||||
|
<aliasDeviceIoUsage Id="db363822-7687-42ab-8ae7-6e97339c41b0" sdsId="11" channelId="1" functionId="-852529" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="ca858ddc-43ef-48ef-b4a6-6e97b8be06d8">
|
||||||
|
<variableUsages Id="3113d5bc-9fd0-4c85-b1ef-09cf951032c0">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="dfaf7d9d-58fb-49b2-b68a-366abbec8643">
|
||||||
|
<fbPortUsage Id="5cd99777-66d2-451b-b53b-a03f9548e970">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="ff0b5e0d-9dba-4a0a-9fe2-111d8e87e5e0">
|
||||||
|
<inPortMoniker name="//Network21/FBScaling1/AnalogIn" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="270c88a1-e4ab-48d1-a123-7eccb5c9b794">
|
||||||
|
<variable Id="eb5c9911-f3d7-409b-be85-4e7873326a01" name="xPumpShouldRun" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="858983f5-bfb1-4015-a4a5-f4c06204ba78">
|
||||||
|
<variableUsages Id="78f11b8b-4601-4f60-bbb5-ab50414f2949">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="d772f35f-f7da-413a-b207-bac3cef1e3d0">
|
||||||
|
<aliasDeviceIoUsage Id="a243b568-891b-40d9-abe8-21e519e8e409" sdsId="2" channelId="3" functionId="1610679041" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="3224c600-ec6d-4e45-99e6-484e3ea3dcae">
|
||||||
|
<variableUsages Id="0d1c60ee-2dce-42d8-9917-ccaae9cdcec0">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="ca7bf14c-050e-498a-8fa7-7850b0910d03">
|
||||||
|
<fbPortUsage Id="4881d7ce-006a-4414-b605-76ac0cdcea56">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="157e0641-d5ca-48bd-9e8e-0035039bc1cd">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn2" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="aff34310-4f73-4267-8953-0cac082efbbc">
|
||||||
|
<variable Id="64028009-8b2f-4190-88ba-dc29fdab5f8b" name="xEStopSpeed" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="3b2cb025-187b-41ec-ae37-a0d74005e474">
|
||||||
|
<variableUsages Id="d065b69b-7c17-4708-9583-230d95ab5c30">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="e4ba5862-a00d-4a90-a84f-1b5b589bd0f5">
|
||||||
|
<fbPortUsage Id="4f56471a-6c70-4982-8e4e-4c19058af2af">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="71aad067-39ac-4115-94ca-b861058ea659">
|
||||||
|
<outPortMoniker name="//Network21/FBOr1/OrOut" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="9ba5f59d-d145-4cca-95fb-f522e25a7d4c">
|
||||||
|
<variableUsages Id="653389ec-f701-4bdc-b615-9a38acdb7b98">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="518a269f-5603-44d4-b268-eb9bf38e69ef">
|
||||||
|
<fbPortUsage Id="ac8d435d-24ae-4199-8e03-cd4040ed0be7">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="28ea9c10-e188-42dc-b9d7-eb9b05b2f6da">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn3" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="677c8ca8-1217-4854-89bf-687fd7664c89">
|
||||||
|
<variable Id="f1845b4e-b8d0-411f-a2cb-5c2165486cde" name="xEStopOk" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="adc0d3ce-b90d-4d11-a360-dda8f224266c">
|
||||||
|
<variableUsages Id="08256c06-b22f-4796-a71b-27860b464ec2">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="789a1d22-60d0-4a9c-a1fb-d099c4110c8e">
|
||||||
|
<fbPortUsage Id="95ca3ece-3eb8-402b-a59c-d60211c8c679">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="b2c2f93a-df3e-4566-be22-69aeda17a5e5">
|
||||||
|
<outPortMoniker name="//Network2/FBEstop1/EStopOut" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="b896cbd7-be79-47ae-b9c2-20690e582763">
|
||||||
|
<variableUsages Id="0c8b69dd-815f-442f-8679-6b687f88994e">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="f5a0aedf-6887-4fe0-8e70-453bfa7ba438">
|
||||||
|
<aliasDeviceIoUsage Id="17908f0a-81a1-4f19-8182-2282ada826e0" sdsId="3" channelId="1" functionId="1879113985" />
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
</variables>
|
||||||
|
</safetyApplication>
|
||||||
366
Safety/TwinSafeGroup1/TwinSafeGroup1.sal.diagram
Normal file
366
Safety/TwinSafeGroup1/TwinSafeGroup1.sal.diagram
Normal file
@@ -0,0 +1,366 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<safetyApplicationLanguageDiagram Crc="3026409695" dslVersion="1.4.0.0" Id="e8471410-8c18-4331-b390-804749f9afec" absoluteBounds="0, 0, 30.75, 12.25" name="TwinSAFE">
|
||||||
|
<safetyApplicationMoniker name="/" />
|
||||||
|
<nestedChildShapes>
|
||||||
|
<networkSwimLane Id="9c50c0da-2eab-4748-bfba-ff18f94a278f" absoluteBounds="0, 0, 30.75, 7.25">
|
||||||
|
<networkMoniker name="//Network21" />
|
||||||
|
<nestedChildShapes>
|
||||||
|
<fBSpeedShape Id="04ac7650-b982-4d5a-84b5-bd70035eee1b" absoluteBounds="3, 0.625, 3.35, 2.25">
|
||||||
|
<fBSpeedMoniker name="//Network21/FBSpeed1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="8be9e9a1-706f-4095-94ab-f6f16fb35cb9" absoluteBounds="2.92, 1.37, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBSpeed1/Position" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="120aa621-a2ec-4b26-b9fd-c4afc4360698" absoluteBounds="6.25, 1.6400000000000001, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBSpeed1/Error" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="ff81e5f7-4ebe-4eb1-a86f-7bef95a79793" absoluteBounds="6.25, 1.9100000000000001, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBSpeed1/Speed" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<paramPortShape Id="bf2f46ef-5b97-4ffc-a0cf-9b71fdc675f5" absoluteBounds="4.57, 2.3000000000000003, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBSpeed1/Time Interval (ms)" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBSpeedShape>
|
||||||
|
<fBScalingShape Id="b1643d14-c35f-4686-8f74-0f250207a7f7" absoluteBounds="3, 3, 3.35, 4">
|
||||||
|
<fBScalingMoniker name="//Network21/FBScaling1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="d5238bf7-6fac-40fd-a2af-1e8f71168eba" absoluteBounds="2.92, 4.0150000000000006, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBScaling1/AnalogIn" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="70871297-15e9-434f-8718-12b8703fdc18" absoluteBounds="6.25, 4.0150000000000006, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBScaling1/Error" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="ae41be2d-7434-4890-9d00-dde47d409bdb" absoluteBounds="6.25, 4.285, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBScaling1/StuckAtError" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="d944ff7b-7585-4274-9428-a8ff43067f56" absoluteBounds="6.25, 4.555, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBScaling1/AnalogOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<paramPortShape Id="5adf4001-acbc-42d7-a35d-c1fcd7aa6b63" absoluteBounds="4.57, 5.075, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBScaling1/Scaling Factor Multiplier" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
<paramPortShape Id="d4bd4d01-3024-4d13-9546-335a4b52b7df" absoluteBounds="4.57, 5.475, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBScaling1/Scaling Factor Divisor" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
<paramPortShape Id="e449cb54-08e5-46f6-822c-dff83af53a9e" absoluteBounds="4.57, 6.0750000000000011, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBScaling1/Scaling Offset" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
<paramPortShape Id="5d72eb23-3545-4aa8-8fb2-9b5023f43fbd" absoluteBounds="4.57, 6.475, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBScaling1/Watchdog (ms)" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBScalingShape>
|
||||||
|
<fBCompareShape Id="81b35365-5839-4601-8679-533780674efc" absoluteBounds="8.25, 1.25, 3.35, 3.8">
|
||||||
|
<fBCompareMoniker name="//Network21/FBCompare1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="58913998-7ecb-4487-8c01-08a299735fb8" absoluteBounds="8.17, 1.995, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn1" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="9416666b-7bff-4f1d-a91e-3ae591edfa2c" absoluteBounds="8.17, 2.265, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn2" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="f6de3cf5-ebe7-477d-85ec-ce71028bdf85" absoluteBounds="8.17, 2.535, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn3" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="e8e77624-a690-4d00-be40-d34411ac82c0" absoluteBounds="8.17, 2.805, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn4" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="1b09c307-3e79-4577-b9d5-866aca810259" absoluteBounds="8.17, 3.075, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBCompare1/CompIn5" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="e9c82c37-2ef0-4fa0-81d4-3a656e3d3156" absoluteBounds="11.5, 2.265, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBCompare1/Error" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="7f8540af-4a7a-4908-a71f-860c26f669a3" absoluteBounds="11.5, 2.535, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBCompare1/IsValid" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="85b8645c-687c-4723-877b-2f8aa01d4616" absoluteBounds="11.5, 2.805, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBCompare1/CompOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<paramPortShape Id="56fc7720-d547-498f-ba4c-8122210724e5" absoluteBounds="10.17, 3.775, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBCompare1/Allowed deviation" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
<paramPortShape Id="e11984e2-e6e9-4bac-8e44-1fec5911d47a" absoluteBounds="10.17, 4.1750000000000007, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBCompare1/Tolerance time (ms)" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBCompareShape>
|
||||||
|
<wiredLinkConnector Id="c873b487-88df-4e40-a815-f7dad6aa1f31" edgePoints="[(6.4 : 1.985); (6.775 : 1.985); (6.775 : 2.07); (8.17 : 2.07)]" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
|
||||||
|
<wiredLinkMoniker Id="482441d8-539d-41b3-b700-f2b84a1569d6" />
|
||||||
|
<nodes>
|
||||||
|
<outPortShapeMoniker Id="ff81e5f7-4ebe-4eb1-a86f-7bef95a79793" />
|
||||||
|
<inPortShapeMoniker Id="58913998-7ecb-4487-8c01-08a299735fb8" />
|
||||||
|
</nodes>
|
||||||
|
</wiredLinkConnector>
|
||||||
|
<wiredLinkConnector Id="8ee86714-a9e6-4aeb-ac94-0bb9aca057cf" edgePoints="[(6.4 : 4.63); (6.775 : 4.63); (6.775 : 2.34); (8.17 : 2.34)]" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
|
||||||
|
<wiredLinkMoniker Id="5922d18c-f030-4a6b-8f55-406ffd6fe56c" />
|
||||||
|
<nodes>
|
||||||
|
<outPortShapeMoniker Id="d944ff7b-7585-4274-9428-a8ff43067f56" />
|
||||||
|
<inPortShapeMoniker Id="9416666b-7bff-4f1d-a91e-3ae591edfa2c" />
|
||||||
|
</nodes>
|
||||||
|
</wiredLinkConnector>
|
||||||
|
<fBLimitShape Id="5c1ce843-885f-4db0-896e-c4bfe3ed7b77" absoluteBounds="14, 2.125, 3.35, 3">
|
||||||
|
<fBLimitMoniker name="//Network21/FBLimit1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="ef73a825-6d45-4f58-a45d-2d7c2c30ab07" absoluteBounds="13.92, 2.87, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBLimit1/AnalogIn" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="2a8347c9-6ff5-432d-ac54-2970fd9c7a1e" absoluteBounds="13.92, 3.14, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBLimit1/MinValue" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="bf5da8ce-d94c-4ff7-bdad-0cf254ed4f3f" absoluteBounds="13.92, 3.41, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBLimit1/MaxValue" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="82960093-fa28-43f0-957f-8d546dee81c5" absoluteBounds="17.25, 2.87, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBLimit1/Error" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="bd904d5a-134a-45b9-be8d-168b891e6a46" absoluteBounds="17.25, 3.14, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBLimit1/InLimit" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="b6b93732-9099-477a-91f7-769980623477" absoluteBounds="17.25, 3.41, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBLimit1/BelowMin" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="45f3595f-b57a-4b85-90d0-60ef0b2b06f6" absoluteBounds="17.25, 3.68, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBLimit1/AboveMax" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<paramPortShape Id="905153a7-a96f-4837-be25-0c58571a6a3e" absoluteBounds="15.57, 4.2, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBLimit1/Minimum Value" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
<paramPortShape Id="29bc10a6-c8b4-46b2-b2a6-5df9d4053990" absoluteBounds="15.57, 4.6, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network21/FBLimit1/Maximum Value" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBLimitShape>
|
||||||
|
<wiredLinkConnector Id="3156a9c6-d127-4606-8f69-e3fac417e77a" edgePoints="[(11.65 : 2.88); (12.025 : 2.88); (12.025 : 2.945); (13.92 : 2.945)]" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
|
||||||
|
<wiredLinkMoniker Id="1e4f8e63-feb2-43e2-902f-adb5fe1d07c2" />
|
||||||
|
<nodes>
|
||||||
|
<outPortShapeMoniker Id="85b8645c-687c-4723-877b-2f8aa01d4616" />
|
||||||
|
<inPortShapeMoniker Id="ef73a825-6d45-4f58-a45d-2d7c2c30ab07" />
|
||||||
|
</nodes>
|
||||||
|
</wiredLinkConnector>
|
||||||
|
<fBOrShape Id="0e26224b-de97-4334-8dee-b016e46f9621" absoluteBounds="22.75, 0.25, 2.75, 3.25">
|
||||||
|
<fBOrMoniker name="//Network21/FBOr1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="15146e81-9222-439d-b518-43c3decfec33" absoluteBounds="22.67, 0.995, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn1" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="44701d0a-4bdd-447e-b408-ee9bf690aa6a" absoluteBounds="22.67, 1.2650000000000001, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn2" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="cb2f7ec2-611e-438f-a82e-dce3de955b8b" absoluteBounds="22.67, 1.5350000000000001, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn3" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="f9d37166-52dc-4443-b87e-c39cbb08607f" absoluteBounds="22.67, 1.8050000000000002, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn4" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="db7aaf3f-329f-4515-9b37-f9842cad5a14" absoluteBounds="22.67, 2.075, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn5" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="4c0be843-66c1-470a-95ac-41f94dfc57ca" absoluteBounds="22.67, 2.345, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn6" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="96525793-4284-4a13-af03-189b168e869d" absoluteBounds="22.67, 2.615, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn7" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="356cd677-87f0-4c3b-9b48-a14f1c80e0ff" absoluteBounds="22.67, 2.8850000000000002, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr1/OrIn8" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="57f7fc73-137c-40f5-b111-bbc73c5d5826" absoluteBounds="25.4, 2.615, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBOr1/OrOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBOrShape>
|
||||||
|
<wiredLinkConnector Id="c6c63896-7097-458f-b610-a1f0370aaa4f" edgePoints="[(11.65 : 2.61); (12.025 : 2.61); (12.025 : 1.07); (22.67 : 1.07)]" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
|
||||||
|
<wiredLinkMoniker Id="f1538b15-a353-4670-b8a0-582bf63af946" />
|
||||||
|
<nodes>
|
||||||
|
<outPortShapeMoniker Id="7f8540af-4a7a-4908-a71f-860c26f669a3" />
|
||||||
|
<inPortShapeMoniker Id="15146e81-9222-439d-b518-43c3decfec33" />
|
||||||
|
</nodes>
|
||||||
|
</wiredLinkConnector>
|
||||||
|
<fBOrShape Id="2dfc4e9c-a956-4d6e-967a-3f383e8e0220" absoluteBounds="19, 2.375, 2.75, 3.25">
|
||||||
|
<fBOrMoniker name="//Network21/FBOr2" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="74dae78c-29d5-4188-ae75-cc0c45d09bec" absoluteBounds="18.92, 3.12, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn1" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="84c63fea-2655-493b-b200-e6eef2212395" absoluteBounds="18.92, 3.39, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn2" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="6dc95e01-8c5f-445b-988b-300e1a5d5cb5" absoluteBounds="18.92, 3.66, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn3" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="c36f2b47-61fc-4f14-9a5b-b16b95391652" absoluteBounds="18.92, 3.93, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn4" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="3b99e52d-c680-4f56-9ec1-51df1f3ce1a9" absoluteBounds="18.92, 4.2, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn5" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="f1379ae0-e68c-4e2a-a7e8-b7e447072286" absoluteBounds="18.92, 4.4700000000000006, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn6" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="a11bb89e-5fe1-4c9a-b5a7-c2aca07ad440" absoluteBounds="18.92, 4.74, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn7" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="a9bc615b-e3cd-49b2-997b-638d67bb415b" absoluteBounds="18.92, 5.01, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network21/FBOr2/OrIn8" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="f7805f6e-c234-4ee6-abdd-43877adc4dad" absoluteBounds="21.65, 4.74, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network21/FBOr2/OrOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBOrShape>
|
||||||
|
<wiredLinkConnector Id="321bae52-c2bf-4385-a6f6-224404775a08" edgePoints="[(17.4 : 3.215); (17.775 : 3.215); (17.775 : 3.195); (18.92 : 3.195)]" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
|
||||||
|
<wiredLinkMoniker Id="87c23819-4291-4102-a056-190d92a9b310" />
|
||||||
|
<nodes>
|
||||||
|
<outPortShapeMoniker Id="bd904d5a-134a-45b9-be8d-168b891e6a46" />
|
||||||
|
<inPortShapeMoniker Id="74dae78c-29d5-4188-ae75-cc0c45d09bec" />
|
||||||
|
</nodes>
|
||||||
|
</wiredLinkConnector>
|
||||||
|
<wiredLinkConnector Id="f7b38630-2437-4138-9c74-a52e888e76fc" edgePoints="[(21.8 : 4.815); (22.175 : 4.815); (22.175 : 1.34); (22.67 : 1.34)]" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
|
||||||
|
<wiredLinkMoniker Id="22f90d46-386f-4a68-bfe8-4c03375d6655" />
|
||||||
|
<nodes>
|
||||||
|
<outPortShapeMoniker Id="f7805f6e-c234-4ee6-abdd-43877adc4dad" />
|
||||||
|
<inPortShapeMoniker Id="44701d0a-4bdd-447e-b408-ee9bf690aa6a" />
|
||||||
|
</nodes>
|
||||||
|
</wiredLinkConnector>
|
||||||
|
</nestedChildShapes>
|
||||||
|
</networkSwimLane>
|
||||||
|
<networkSwimLane Id="beeaca4b-0498-42b4-a242-21f8e26c56a4" absoluteBounds="0, 7.25, 30.75, 4.9499999999999993">
|
||||||
|
<networkMoniker name="//Network2" />
|
||||||
|
<nestedChildShapes>
|
||||||
|
<fBEstopShape Id="0859b265-dcbd-482a-9423-7a3be5744b23" absoluteBounds="2.875, 7.5, 3.35, 4.45">
|
||||||
|
<fBEstopMoniker name="//Network2/FBEstop1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="235c6d12-173d-4f0c-a672-f69dcf990f4c" absoluteBounds="2.795, 8.245, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/Restart" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="24a706ba-e296-479d-bc16-c28a1c6eb412" absoluteBounds="2.795, 8.807500000000001, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn1" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="b40901e8-2579-404b-8ebb-98ce942ad856" absoluteBounds="2.795, 9.0325, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn2" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="342f91a7-fdcf-4703-901b-0377655909d6" absoluteBounds="2.795, 9.3475, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn3" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="2fef2d16-b398-4fd3-8585-e7ecb78b4859" absoluteBounds="2.795, 9.5725, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn4" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="7a5e93af-438b-4f76-8dc8-b71ef8216336" absoluteBounds="2.795, 9.8875, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn5" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="283c42c5-9cdf-4b6e-827e-d87a7a007749" absoluteBounds="2.795, 10.1125, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn6" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="3dfbcb93-ce58-48e4-9938-364d7ac89ab9" absoluteBounds="2.795, 10.4275, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn7" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="2558b447-421e-4950-94f1-078cfc9e4d41" absoluteBounds="2.795, 10.6525, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EStopIn8" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="198ea68d-aa3a-471f-b6b2-53c31a5ea959" absoluteBounds="2.795, 11.2375, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EDM1" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="559ec6e8-a9df-45f3-9ff0-d43dbe8d7212" absoluteBounds="2.795, 11.4625, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network2/FBEstop1/EDM2" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="1f82026c-c40d-4bbd-a4b7-57a840da63d0" absoluteBounds="6.125, 8.785, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network2/FBEstop1/Error" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="0aa2f046-baa4-4a59-8232-db660e8ae7a3" absoluteBounds="6.125, 10.675, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network2/FBEstop1/EStopOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<outPortShape Id="bce7e75c-58ed-4c30-8184-094608511e0f" absoluteBounds="6.125, 10.945, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network2/FBEstop1/EStopDelOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
<paramPortShape Id="50d44bf7-e7cb-4155-b004-a4131f5f945c" absoluteBounds="4.445, 10.775, 0.7, 0.2">
|
||||||
|
<parameterPortMoniker name="//Network2/FBEstop1/Delay Time (ms)" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</paramPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBEstopShape>
|
||||||
|
<userFunctionBlockShape Id="a0408936-6cf1-4730-86a6-c62ec01e7965" absoluteBounds="8, 9.125, 2.15, 1.35">
|
||||||
|
<userFunctionBlockMoniker name="//Network2/UserFunctionBlock1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="27d33ec2-9afb-4f15-a050-b32198a1d14d" absoluteBounds="7.92, 9.6, 0.15, 0.15">
|
||||||
|
<metaInPortMoniker name="//Network2/UserFunctionBlock1/AnySignal" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="8220bf10-9a01-4fb3-a0b0-35cd3b970182" absoluteBounds="7.92, 9.87, 0.15, 0.15">
|
||||||
|
<metaInPortMoniker name="//Network2/UserFunctionBlock1/AnySignal_" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="bbb711f8-fe34-4bfa-b50c-de147bd59ecc" absoluteBounds="10.05, 9.6, 0.15, 0.15">
|
||||||
|
<metaOutPortMoniker name="//Network2/UserFunctionBlock1/AlwaysTrue" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</userFunctionBlockShape>
|
||||||
|
</nestedChildShapes>
|
||||||
|
</networkSwimLane>
|
||||||
|
</nestedChildShapes>
|
||||||
|
</safetyApplicationLanguageDiagram>
|
||||||
126
Safety/User FBs/AlwaysTrue.ufb
Normal file
126
Safety/User FBs/AlwaysTrue.ufb
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<safetyApplication Crc="904853738" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.4.0.0" Id="40362a3f-2d6f-4ed4-899e-f95e68783932" name="" mapState="false" mapDiag="false" groupOrderId="0" passificationAllowed="false" temporaryDeactivationAllowed="false" permamentDeactivationAllowed="false" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="40362a3f-2d6f-4ed4-899e-f95e68783932" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
|
||||||
|
<networks>
|
||||||
|
<safetyApplicationHasNetworks Id="da62ccfd-251d-4986-82a4-8be058f260d3">
|
||||||
|
<Network Id="4222c61f-d53d-47ae-8d62-4481a715aa2a" name="Network1" networkName="Network1" intId="1" networkOrderId="0">
|
||||||
|
<functionBlocks>
|
||||||
|
<networkHasFunctionBlocks Id="306e33c9-2df0-4ec4-8106-fddac1aa0beb">
|
||||||
|
<fBOr Id="26483421-701a-498e-ae8d-f122103889ab" name="FBOr1" instanceName="FBOr1" orderOfExecution="1" mapState="false" mapDiag="false" functionName="safeOr">
|
||||||
|
<inPorts>
|
||||||
|
<functioBlockHasInPorts Id="af7af044-04da-40db-ac96-cd312f34ddd3">
|
||||||
|
<inPort Id="96029339-d090-4ae8-9d1c-7541b7b6bf52" name="OrIn1" portName="OrIn1" portNum="2" objectIndex="8" varId="2" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="191ce175-42c7-41fa-97ff-52c2d00191dd">
|
||||||
|
<inPort Id="26ef356f-a041-4b45-8dd8-cb44ac5f8558" name="OrIn2" portName="OrIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Make Contact (NO)" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="5f76f130-9673-46ce-8b22-6933b5b65282">
|
||||||
|
<inPort Id="a080a9e1-e794-4d90-87e1-28cb6e9c9f38" name="OrIn3" portName="OrIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="9da443e1-ffaa-460b-8a58-17915286f992">
|
||||||
|
<inPort Id="4b254efc-24d3-4778-a2d5-249b3b59de1f" name="OrIn4" portName="OrIn4" portNum="5" objectIndex="11" varId="5" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="60d1554d-c91a-4039-b8aa-c51fce32f142">
|
||||||
|
<inPort Id="c903e049-bfc4-40fe-b0f6-e723e8ddb366" name="OrIn5" portName="OrIn5" portNum="6" objectIndex="12" varId="6" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="3e5fce94-1b7e-4e08-88d3-74bbf03ba0db">
|
||||||
|
<inPort Id="66588d79-8333-4b03-a432-0ed141af0170" name="OrIn6" portName="OrIn6" portNum="7" objectIndex="13" varId="7" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="d9d27c5d-857d-4e0e-8fa5-e59563b8710a">
|
||||||
|
<inPort Id="1f6a4aca-50b1-4ed5-8fd2-e109f967a110" name="OrIn7" portName="OrIn7" portNum="8" objectIndex="14" varId="8" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
<functioBlockHasInPorts Id="01f4368d-8a47-4365-88ae-913da69e5d98">
|
||||||
|
<inPort Id="8e9912b5-244b-4057-817e-e77fcd058897" name="OrIn8" portName="OrIn8" portNum="9" objectIndex="15" varId="9" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
|
||||||
|
</functioBlockHasInPorts>
|
||||||
|
</inPorts>
|
||||||
|
<outPorts>
|
||||||
|
<functionBlockHasOutPorts Id="9dedfd7d-67ec-4ead-b5e1-802271ea7f8d">
|
||||||
|
<outPort Id="7df28e36-887d-43b0-a7a7-b5e9ca9ba267" name="OrOut" portName="OrOut" portNum="8" objectIndex="1" varId="20" filter="7" portDataType="1" replacementValue="0" />
|
||||||
|
</functionBlockHasOutPorts>
|
||||||
|
</outPorts>
|
||||||
|
</fBOr>
|
||||||
|
</networkHasFunctionBlocks>
|
||||||
|
</functionBlocks>
|
||||||
|
</Network>
|
||||||
|
</safetyApplicationHasNetworks>
|
||||||
|
</networks>
|
||||||
|
<variables>
|
||||||
|
<safetyApplicationHasVariables Id="687df491-c1f5-4fb9-b1ef-a4373f93301f">
|
||||||
|
<variable Id="abfa5f60-fb3e-4982-ad23-5a9f298288d8" name="AnySignal" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="edfa5a45-7165-4b91-ae54-707daf65df22">
|
||||||
|
<variableUsages Id="f8cca5e4-b6b4-4719-aeee-cd5b62f9c63d" />
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="d2018365-22fd-4f81-ba46-7a9493bab510">
|
||||||
|
<variableUsages Id="57974f0e-2f85-45a3-a014-955c8f529a3a">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="7db2adc2-608e-4922-990f-77b407da5ccd">
|
||||||
|
<fbPortUsage Id="694a85a7-716e-4976-bd07-47174664cb71">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="9a33d19a-c232-4c5e-8fae-c0c221909bec">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn1" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="a364a27c-259b-4d06-9558-df83729cd53b">
|
||||||
|
<variable Id="d2b59abb-f6b2-44b8-8e6c-9a7f79516f83" name="AnySignal_" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="79ccc519-7ecf-4497-b0ac-4ae5aa377a4a">
|
||||||
|
<variableUsages Id="b19e0ee0-5567-425f-9fa2-ac74c4401e48" />
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="e209c412-3fa0-46a0-a9d5-0ce88f0a4358">
|
||||||
|
<variableUsages Id="40d7b092-9bc3-4ed2-b370-124d6efcfdd4">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="c11de4ca-2aaf-41e7-ab88-30760b4762f6">
|
||||||
|
<fbPortUsage Id="3102bdc4-9167-4e65-8e38-e3f568da757e">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="d7e1c99c-91d2-40e0-b024-7e9b6b8e2206">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn2" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
<safetyApplicationHasVariables Id="3de595ff-9b7f-4397-b425-b89d9e428287">
|
||||||
|
<variable Id="dcc233fa-9924-4295-aec8-ce87c9312e1a" name="AlwaysTrue" isLocal="false">
|
||||||
|
<sourceUsages>
|
||||||
|
<variableHasSourceUsages Id="a5abe87d-cb83-452f-b098-ed7db0789a08">
|
||||||
|
<variableUsages Id="41fff3db-a418-47d6-aca2-8e59a253fb1e">
|
||||||
|
<usages>
|
||||||
|
<variableUsagesHasUsages Id="b1a648ad-37da-4bd3-ae33-90c7460c71c9">
|
||||||
|
<fbPortUsage Id="d2df8d56-a76e-4ad8-820d-9dd07ad83f0b">
|
||||||
|
<functionBlockPort>
|
||||||
|
<fbPortUsageReferencesFunctionBlockPort Id="3026bf20-69a8-4ea3-925c-57b7559c7b1f">
|
||||||
|
<outPortMoniker name="//Network1/FBOr1/OrOut" />
|
||||||
|
</fbPortUsageReferencesFunctionBlockPort>
|
||||||
|
</functionBlockPort>
|
||||||
|
</fbPortUsage>
|
||||||
|
</variableUsagesHasUsages>
|
||||||
|
</usages>
|
||||||
|
</variableUsages>
|
||||||
|
</variableHasSourceUsages>
|
||||||
|
</sourceUsages>
|
||||||
|
<targetUsages>
|
||||||
|
<variableHasTargetUsages Id="a0a9cb73-295f-4af7-a2fb-30ac1962484f">
|
||||||
|
<variableUsages Id="8b656d3b-62dd-4a94-821a-49e486bf72b6" />
|
||||||
|
</variableHasTargetUsages>
|
||||||
|
</targetUsages>
|
||||||
|
</variable>
|
||||||
|
</safetyApplicationHasVariables>
|
||||||
|
</variables>
|
||||||
|
</safetyApplication>
|
||||||
52
Safety/User FBs/AlwaysTrue.ufb.diagram
Normal file
52
Safety/User FBs/AlwaysTrue.ufb.diagram
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<safetyApplicationLanguageDiagram Crc="3596951796" dslVersion="1.4.0.0" Id="61ac68f9-aa52-406c-9f77-7c688f708f87" absoluteBounds="0, 0, 11, 8.5" name="TwinSAFE">
|
||||||
|
<safetyApplicationMoniker name="/" />
|
||||||
|
<nestedChildShapes>
|
||||||
|
<networkSwimLane Id="a603425d-fc02-4486-9dc5-67e91f5ae702" absoluteBounds="0, 0, 11, 4.75">
|
||||||
|
<networkMoniker name="//Network1" />
|
||||||
|
<nestedChildShapes>
|
||||||
|
<fBOrShape Id="85b70908-1253-49a3-892f-6e390a2a4762" absoluteBounds="3, 1.25, 2.75, 3.25">
|
||||||
|
<fBOrMoniker name="//Network1/FBOr1" />
|
||||||
|
<relativeChildShapes>
|
||||||
|
<inPortShape Id="83334bbd-dcd0-4fe9-8539-7fdab47320f1" absoluteBounds="2.92, 1.995, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn1" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="a35ed8f5-a793-404f-8d86-67c2e4d3d401" absoluteBounds="2.92, 2.265, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn2" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="ea4502b8-b826-4f8e-bf07-085cfa841fa4" absoluteBounds="2.92, 2.535, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn3" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="1be3bc2f-fa2f-40bb-b9a8-4429d113a2d1" absoluteBounds="2.92, 2.805, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn4" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="79d2acf0-1fe7-4d30-acf8-da6e36a62f37" absoluteBounds="2.92, 3.075, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn5" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="a2ce6710-45cb-4f1e-9718-98639e6e3523" absoluteBounds="2.92, 3.345, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn6" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="37c3639b-d76c-44b2-a86d-3e6121884fe1" absoluteBounds="2.92, 3.615, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn7" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<inPortShape Id="561b8117-222a-4b32-97cf-12761ba701fe" absoluteBounds="2.92, 3.8850000000000002, 0.15, 0.15">
|
||||||
|
<inPortMoniker name="//Network1/FBOr1/OrIn8" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</inPortShape>
|
||||||
|
<outPortShape Id="34e89e0e-3ddf-4ef0-b9c8-4bce8e004bab" absoluteBounds="5.65, 3.615, 0.15, 0.15">
|
||||||
|
<outPortMoniker name="//Network1/FBOr1/OrOut" />
|
||||||
|
<relativeChildShapes />
|
||||||
|
</outPortShape>
|
||||||
|
</relativeChildShapes>
|
||||||
|
</fBOrShape>
|
||||||
|
</nestedChildShapes>
|
||||||
|
</networkSwimLane>
|
||||||
|
</nestedChildShapes>
|
||||||
|
</safetyApplicationLanguageDiagram>
|
||||||
29
TrialLicense.tclrs
Normal file
29
TrialLicense.tclrs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<TcLicenseInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2011/11/TcLicenseInfo">
|
||||||
|
<LicenseInfo>
|
||||||
|
<SystemId>{684D9EC5-1AA3-C34B-154B-66D6728C6461}</SystemId>
|
||||||
|
<IssueTime>2024-01-04T12:18:00</IssueTime>
|
||||||
|
<ExpireTime>2024-01-12T00:00:00</ExpireTime>
|
||||||
|
<LicenseKey>5166847cce58453b9ea56a8358da8bb58fd849397589e797b20438c85eada3cf10d3fbd0fba794e0e63959a51e666c59648269ca406c024ab220c6d4b2fe53a1bf29ceabdda5bd88f8dc9685568c3897f3a3204f0e5e09ecf6a196877dacfea21c4aeff201ee27b429a7571cbd86102f0bbd00fdaaec7703d1f0c8d958a333da78f94cb9c99bf86f59dcc3d8c24ce4774a10acc77082a991d3e55e79dc5c374728eefb08b8e494944db71a282199b8f2d666d3c853dfd8ad3b38608a65f3d0a06d8648febc8dd21c4c47b3cd244c660d86bfc6afdac47dc4032062a39c0613303577570de8866631ce2f76dec59ab228c8605a05d6a2f121e1e02ea81b33383f</LicenseKey>
|
||||||
|
<License>
|
||||||
|
<LicenseId>{6952449D-F68C-49A2-ADE4-8639D85B33A4}</LicenseId>
|
||||||
|
<Name>TC3 Modbus-TCP</Name>
|
||||||
|
<OrderNo>TF6250</OrderNo>
|
||||||
|
</License>
|
||||||
|
<License>
|
||||||
|
<LicenseId>{4C256767-E6E6-4AF5-BD68-9F7ABAD0C200}</LicenseId>
|
||||||
|
<Name>TC3 ADS</Name>
|
||||||
|
<OrderNo>TC1000</OrderNo>
|
||||||
|
</License>
|
||||||
|
<License>
|
||||||
|
<LicenseId>{66689887-CCBD-452C-AC9A-039D997C6E66}</LicenseId>
|
||||||
|
<Name>TC3 PLC</Name>
|
||||||
|
<OrderNo>TC1200</OrderNo>
|
||||||
|
</License>
|
||||||
|
<License>
|
||||||
|
<LicenseId>{3FF18E97-7754-401B-93FB-70544DE28A13}</LicenseId>
|
||||||
|
<Name>TC3 IO</Name>
|
||||||
|
<OrderNo>TC1100</OrderNo>
|
||||||
|
</License>
|
||||||
|
</LicenseInfo>
|
||||||
|
</TcLicenseInfo>
|
||||||
4
Uniper.project.~u
Normal file
4
Uniper.project.~u
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Matthias.Heisig
|
||||||
|
IT-HYB-PW07LBG3
|
||||||
|
19292
|
||||||
|
638399745216198512
|
||||||
90
Uniper.sln
Normal file
90
Uniper.sln
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# TcXaeShell Solution File, Format Version 11.00
|
||||||
|
VisualStudioVersion = 15.0.33403.129
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "Uniper", "Uniper.tsproj", "{24BCEDE3-526F-4D87-A687-3DBA9D107213}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2)
|
||||||
|
Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
|
||||||
|
Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
|
||||||
|
Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2)
|
||||||
|
Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
|
||||||
|
Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
|
||||||
|
{24BCEDE3-526F-4D87-A687-3DBA9D107213}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
|
||||||
|
{9AE64910-5EB2-4866-93FD-EFE059C38C36}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
|
||||||
|
{3F028238-46CF-458C-8DF3-E9A8FAA6AF8B}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
|
||||||
|
{EFB0A11F-989C-4D9E-B375-03735C7E3BFF}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {34898A43-AD77-443B-BC87-573FA5C09B00}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
4646
Uniper.tsproj
Normal file
4646
Uniper.tsproj
Normal file
File diff suppressed because it is too large
Load Diff
4643
Uniper.tsproj.bak
Normal file
4643
Uniper.tsproj.bak
Normal file
File diff suppressed because it is too large
Load Diff
18
UniperEvents.tmc
Normal file
18
UniperEvents.tmc
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<TcModuleClass>
|
||||||
|
<DataTypes>
|
||||||
|
<DataType>
|
||||||
|
<Name GUID="{449AFAF7-1CB8-43A8-977D-36C33E7AFF6C}">General</Name>
|
||||||
|
<DisplayName TxtId=""><![CDATA[General alarms and infos]]></DisplayName>
|
||||||
|
<EventId>
|
||||||
|
<Name Id="1">NotAllCompInAutomatic</Name>
|
||||||
|
<DisplayName TxtId=""><![CDATA[Unit {0} not all components in automatic mode]]></DisplayName>
|
||||||
|
<Severity>Warning</Severity>
|
||||||
|
</EventId>
|
||||||
|
<Hides>
|
||||||
|
<Hide GUID="{2AC7C19C-D057-4107-A9DC-D12E37F9C437}"/>
|
||||||
|
<Hide GUID="{B2B1693C-04F1-434F-9927-39B63A3B2C0A}"/>
|
||||||
|
</Hides>
|
||||||
|
</DataType>
|
||||||
|
</DataTypes>
|
||||||
|
</TcModuleClass>
|
||||||
BIN
_Boot/CurrentConfig/PLC.tpzip
Normal file
BIN
_Boot/CurrentConfig/PLC.tpzip
Normal file
Binary file not shown.
9
_Boot/TargetDescription.xml
Normal file
9
_Boot/TargetDescription.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<TcTargetDesc>
|
||||||
|
<TargetVersion>
|
||||||
|
<Version>3</Version>
|
||||||
|
<Revision>1</Revision>
|
||||||
|
<Build>4024</Build>
|
||||||
|
<Subbuild>53</Subbuild>
|
||||||
|
</TargetVersion>
|
||||||
|
</TcTargetDesc>
|
||||||
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig.tszip
Normal file
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig.tszip
Normal file
Binary file not shown.
168
_Boot/TwinCAT RT (x64)/CurrentConfig.xml
Normal file
168
_Boot/TwinCAT RT (x64)/CurrentConfig.xml
Normal file
File diff suppressed because one or more lines are too long
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig/PLC.tpzip
Normal file
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig/PLC.tpzip
Normal file
Binary file not shown.
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig/PLC_SIM.tpzip
Normal file
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig/PLC_SIM.tpzip
Normal file
Binary file not shown.
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig/Safety.tfzip
Normal file
BIN
_Boot/TwinCAT RT (x64)/CurrentConfig/Safety.tfzip
Normal file
Binary file not shown.
103
_Boot/TwinCAT RT (x64)/CurrentEventMessages.xml
Normal file
103
_Boot/TwinCAT RT (x64)/CurrentEventMessages.xml
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<TcEventSources Version="2">
|
||||||
|
<Source>
|
||||||
|
<GUID>{E80DD7BA-FA01-494C-9EFA-D70175C5A769}</GUID>
|
||||||
|
<Name LcId="1033">NewEventClass_DisplayText</Name>
|
||||||
|
<Event>
|
||||||
|
<Id>1</Id>
|
||||||
|
<Message LcId="1033">Valve {0} did not open</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>2</Id>
|
||||||
|
<Message LcId="1033">Valve {0} did not close</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>3</Id>
|
||||||
|
<Message LcId="1033">Valve {0} feedback open circuit</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>4</Id>
|
||||||
|
<Message LcId="1033">Valve {0} setpoint open circuit</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>5</Id>
|
||||||
|
<Message LcId="1033">Valve {0} not in range</Message>
|
||||||
|
</Event>
|
||||||
|
</Source>
|
||||||
|
<Source>
|
||||||
|
<GUID>{0B767148-8FC5-4340-B6EB-6151E49FC9FF}</GUID>
|
||||||
|
<Name LcId="1033">EventClass2_DisplayText</Name>
|
||||||
|
<Event>
|
||||||
|
<Id>1</Id>
|
||||||
|
<Message LcId="1033">{0} input open circuit</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>2</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0} card error</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>3</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0} short circuit</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>4</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0} configuration error</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>5</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0}: Input Value below error limit ({1})</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>6</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0}: Input Value below warning limit ({1})</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>7</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0}: Input Value above warning limit ({1})</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>8</Id>
|
||||||
|
<Message LcId="1033">Analog Input {0}: Input Value above error limit ({1})</Message>
|
||||||
|
</Event>
|
||||||
|
</Source>
|
||||||
|
<Source>
|
||||||
|
<GUID>{8BFB4FDD-3EEC-40D7-987E-004CDA8B9B54}</GUID>
|
||||||
|
<Name LcId="1033">EventClass3_DisplayText</Name>
|
||||||
|
<Event>
|
||||||
|
<Id>1</Id>
|
||||||
|
<Message LcId="1033">Analog output {0} config error</Message>
|
||||||
|
</Event>
|
||||||
|
</Source>
|
||||||
|
<Source>
|
||||||
|
<GUID>{BF1D9A4D-48E1-4CE9-9A52-161E93CC0C6D}</GUID>
|
||||||
|
<Name LcId="1033">Motor events</Name>
|
||||||
|
<Event>
|
||||||
|
<Id>1</Id>
|
||||||
|
<Message LcId="1033">Motor {0} MCB tripped</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>2</Id>
|
||||||
|
<Message LcId="1033">Motor {0} repair switch open</Message>
|
||||||
|
</Event>
|
||||||
|
<Event>
|
||||||
|
<Id>3</Id>
|
||||||
|
<Message LcId="1033">Motor {0} not in target</Message>
|
||||||
|
</Event>
|
||||||
|
</Source>
|
||||||
|
<Source>
|
||||||
|
<GUID>{C1141D67-F77A-4C56-9A6D-82359097C6E6}</GUID>
|
||||||
|
<Name LcId="1033">Safety door errors</Name>
|
||||||
|
<Event>
|
||||||
|
<Id>1</Id>
|
||||||
|
<Message LcId="1033">Safety Door {0} not ok</Message>
|
||||||
|
</Event>
|
||||||
|
</Source>
|
||||||
|
<Source>
|
||||||
|
<GUID>{449AFAF7-1CB8-43A8-977D-36C33E7AFF6C}</GUID>
|
||||||
|
<Name LcId="1033">General alarms and infos</Name>
|
||||||
|
<Event>
|
||||||
|
<Id>1</Id>
|
||||||
|
<Message LcId="1033">Unit {0} not all components in automatic mode</Message>
|
||||||
|
</Event>
|
||||||
|
</Source>
|
||||||
|
</TcEventSources>
|
||||||
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_851.app
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_851.app
Normal file
Binary file not shown.
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.autostart
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.autostart
Normal file
1
_Boot/TwinCAT RT (x64)/Plc/Port_851.cid
Normal file
1
_Boot/TwinCAT RT (x64)/Plc/Port_851.cid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ө<EFBFBD><EFBFBD>6<EFBFBD><EFBFBD>FU<EFBFBD>Qr<EFBFBD>;<3B>u
|
||||||
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_851.crc
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_851.crc
Normal file
Binary file not shown.
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.occ
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.occ
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.oce
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.oce
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.ocm
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_851.ocm
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip
Normal file
Binary file not shown.
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_852.app
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_852.app
Normal file
Binary file not shown.
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.autostart
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.autostart
Normal file
1
_Boot/TwinCAT RT (x64)/Plc/Port_852.cid
Normal file
1
_Boot/TwinCAT RT (x64)/Plc/Port_852.cid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD><01><>\<5C><>أ<EFBFBD><D8A3><EFBFBD>K9<07>
|
||||||
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_852.crc
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_852.crc
Normal file
Binary file not shown.
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.occ
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.occ
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.oce
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.oce
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.ocm
Normal file
0
_Boot/TwinCAT RT (x64)/Plc/Port_852.ocm
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_852_boot.tizip
Normal file
BIN
_Boot/TwinCAT RT (x64)/Plc/Port_852_boot.tizip
Normal file
Binary file not shown.
Reference in New Issue
Block a user