diff --git a/=A01+UH04-KF00/PLC-Datentypen/1_BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramData_Send.liblink b/=A01+UH04-KF00/PLC-Datentypen/1_BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramData_Send.liblink
new file mode 100644
index 0000000..4f04b46
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/1_BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramData_Send.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 8ba5f026-f6a4-48b6-99af-dc7e461fdb45
+VersionGuid: 03564d6e-8226-4e22-a3ea-f92edd06e200
diff --git a/=A01+UH04-KF00/PLC-Datentypen/1_BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramDefinition.liblink b/=A01+UH04-KF00/PLC-Datentypen/1_BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramDefinition.liblink
new file mode 100644
index 0000000..ff12c48
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/1_BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramDefinition.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 1e3c4983-857e-4011-8c76-51027a08bc9f
+VersionGuid: 2d1cc429-2c73-4e6c-80c3-aba5ed21dc9a
diff --git a/=A01+UH04-KF00/PLC-Datentypen/2_ILSLib/FB/Misc/udt_InterruptParameter_1.liblink b/=A01+UH04-KF00/PLC-Datentypen/2_ILSLib/FB/Misc/udt_InterruptParameter_1.liblink
new file mode 100644
index 0000000..c3a3695
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/2_ILSLib/FB/Misc/udt_InterruptParameter_1.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 97355db0-90c7-4394-9656-3acdfec45b04
+VersionGuid: bd3b46ca-0cf0-47fc-9154-7e6e814179d1
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/100_Common/StateMain/HMI/UDT_StateMachine.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/100_Common/StateMain/HMI/UDT_StateMachine.liblink
new file mode 100644
index 0000000..435f9be
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/100_Common/StateMain/HMI/UDT_StateMachine.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 748bae8a-b781-46d7-addf-30d61d2eba87
+VersionGuid: 56ad7890-8af6-435b-bc6e-eb1b1452b2de
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/100_Common/StateMain/UDT/UDT_MainState.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/100_Common/StateMain/UDT/UDT_MainState.liblink
new file mode 100644
index 0000000..e3f1235
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/100_Common/StateMain/UDT/UDT_MainState.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 3d2d0bd3-d380-4083-96cb-8a59f491213f
+VersionGuid: 10820fae-c055-4680-9e88-3660705a6587
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/UDT_BarcodeReader.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/UDT_BarcodeReader.liblink
new file mode 100644
index 0000000..53b05ee
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/UDT_BarcodeReader.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 05646a02-da52-45d6-8bda-9aae3887a902
+VersionGuid: 938eb73b-d543-45c9-93b1-e09754c1416f
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/UDT_SettingsBarcodeReader.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/UDT_SettingsBarcodeReader.liblink
new file mode 100644
index 0000000..6680406
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/UDT_SettingsBarcodeReader.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 9cd149c5-120a-4c6b-b374-72d0804fee13
+VersionGuid: 6be7977f-bd26-4a22-a946-663b8c2af2c1
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/stCognexInterface.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/stCognexInterface.liblink
new file mode 100644
index 0000000..caa92d2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/stCognexInterface.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 522f83ce-0f0f-4b78-ad1b-5bd95073250a
+VersionGuid: fd4fcb5f-2541-42a7-b6e0-a0e94d47950e
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/stHMI_BRCognexDM.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/stHMI_BRCognexDM.liblink
new file mode 100644
index 0000000..59177cd
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Barcode-Reader/stHMI_BRCognexDM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ba76061d-44fd-44db-918c-8781346850fc
+VersionGuid: 4292f22b-ef2b-4a96-8038-d15fd7be6b5a
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor.liblink
new file mode 100644
index 0000000..e57a0c4
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7dd56464-1b63-4d64-b2d7-887bdb82e393
+VersionGuid: b57e71d3-bb28-42e3-98c8-056af10bfdcb
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor_Config.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor_Config.liblink
new file mode 100644
index 0000000..79d1bff
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor_Config.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 50f6123e-5cf5-451c-991a-e3b8c4fc53e6
+VersionGuid: e4319c82-04b6-4bf6-856a-f001cb82348c
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor_Control.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor_Control.liblink
new file mode 100644
index 0000000..1d2014a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_HMI_Sensor_Control.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 09d91f68-6a2d-4805-86d6-9574c935a865
+VersionGuid: 0315a473-65a3-42eb-8abe-27c8b0341757
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_Sensor.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_Sensor.liblink
new file mode 100644
index 0000000..492ca4a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/110_PROFINET/Sensors/UDT/UDT_Sensor.liblink
@@ -0,0 +1,2 @@
+TypeGuid: daf03d56-a8bc-4c33-9e87-b6b4ed277fe3
+VersionGuid: d053d64c-e366-43e2-bd21-474f5cd34c8f
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/160_Monitoring/UDT/DataLogBuffer.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/160_Monitoring/UDT/DataLogBuffer.liblink
new file mode 100644
index 0000000..5980415
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/160_Monitoring/UDT/DataLogBuffer.liblink
@@ -0,0 +1,2 @@
+TypeGuid: df9e1d69-e6ce-4ac1-9ae0-7fbf009a214e
+VersionGuid: 662af92b-5a15-46a6-b86f-f079e0b6c023
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramData.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramData.liblink
new file mode 100644
index 0000000..fad9cb5
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/170_Communications/TCP/UDT/UDT_TelegramData.liblink
@@ -0,0 +1,2 @@
+TypeGuid: f88be0d9-1f28-4bcb-a5a1-4b77b0e34878
+VersionGuid: 98b089a9-4b8e-4a6f-8a92-5ae5a1509c03
diff --git a/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/180_Safety/UDT_SafetyInterface.liblink b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/180_Safety/UDT_SafetyInterface.liblink
new file mode 100644
index 0000000..20f96b4
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/BaseSystemLib/180_Safety/UDT_SafetyInterface.liblink
@@ -0,0 +1,2 @@
+TypeGuid: fb864e13-ea61-4360-8d0f-d5d050b72048
+VersionGuid: a11cbfca-b52e-4e12-9c12-bc76381e0450
diff --git a/=A01+UH04-KF00/PLC-Datentypen/CarrierStatisticsAMR.xml b/=A01+UH04-KF00/PLC-Datentypen/CarrierStatisticsAMR.xml
new file mode 100644
index 0000000..af2a9e0
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/CarrierStatisticsAMR.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+ CarrierStatisticsAMR
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/CarrierStatisticsStandard.xml b/=A01+UH04-KF00/PLC-Datentypen/CarrierStatisticsStandard.xml
new file mode 100644
index 0000000..6dd45a8
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/CarrierStatisticsStandard.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+ CarrierStatisticsStandard
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stConveyorStationCarrier_Log.xml b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stConveyorStationCarrier_Log.xml
new file mode 100644
index 0000000..3175d7a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stConveyorStationCarrier_Log.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+ Zugehörigkeit
+
+
+
+
+ Auftragsnummer
+
+
+
+
+ Materialnummer
+
+
+
+
+ Ziel
+
+
+
+
+ Zeitstempel
+
+
+
+
+ Barcode Carrier
+
+
+
+
+ Carrier ist aktiv
+
+
+
+
+ Carrier ist beladen
+
+
+
+
+ stConveyorStationCarrier_Log
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventBookingInfo.liblink b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventBookingInfo.liblink
new file mode 100644
index 0000000..9572757
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventBookingInfo.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 82c85f0d-ccab-431d-aa92-eed22521aa25
+VersionGuid: c4bb5b1d-d494-4ba9-8579-919f46480c1e
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLog.xml b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLog.xml
new file mode 100644
index 0000000..0dbb382
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLog.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+ stEventLog
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLogAbrufSeq.xml b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLogAbrufSeq.xml
new file mode 100644
index 0000000..d45d0b2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLogAbrufSeq.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ stEventLogAbrufSeq
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLogAbrufSeqResponse.xml b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLogAbrufSeqResponse.xml
new file mode 100644
index 0000000..ea1b560
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventLogAbrufSeqResponse.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+ stEventLogAbrufSeqResponse
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventScanInfo.liblink b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventScanInfo.liblink
new file mode 100644
index 0000000..94458f6
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventScanInfo.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 0ee040fd-7c22-447b-9f54-00ab7755a6de
+VersionGuid: c2b9634d-aac2-4ebb-86d8-3d8f90f2857b
diff --git a/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventStepChange.xml b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventStepChange.xml
new file mode 100644
index 0000000..a5924d4
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/EventCorrection/stEventStepChange.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+ Neuer / Aktueller Schritt
+
+
+
+
+ Vorheriger Schritt
+
+
+
+
+ stEventStepChange
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CRCanM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CRCanM.liblink
new file mode 100644
index 0000000..2297260
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CRCanM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 63f00789-2c22-4aa4-bfcc-e588fec4879b
+VersionGuid: 4db51e45-c3c3-4394-9e0d-28fc58562095
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CRRespM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CRRespM.liblink
new file mode 100644
index 0000000..4e9796e
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CRRespM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 85b38644-05f1-4c58-81af-5710bca05871
+VersionGuid: 8bb0b94c-a1d5-4a32-8d10-6c1dd8f20614
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CReqM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CReqM.liblink
new file mode 100644
index 0000000..9f4bb53
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CReqM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 21cdd0b4-76f2-4bc2-b241-1336e5bc646a
+VersionGuid: 4d7b4b54-1b04-491d-aae4-d8023ff8cc22
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CSRespM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CSRespM.liblink
new file mode 100644
index 0000000..42fa234
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CSRespM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 3c830616-777f-444d-b459-27c9e884eda1
+VersionGuid: c6e1046d-df91-47db-a161-fdaf524ca1fc
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CTMP.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CTMP.liblink
new file mode 100644
index 0000000..56905a5
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_CTMP.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 05b3626f-dfd5-45f9-bc54-94baa216ec4b
+VersionGuid: fd787b6f-219b-48e3-b092-14442aa3e4b6
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_ECNT.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_ECNT.liblink
new file mode 100644
index 0000000..d394e2f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_ECNT.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 484681dd-e494-4cff-ba16-287939cc69b8
+VersionGuid: d9074f40-3f6d-4d35-870d-12c5be690af3
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDReqM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDReqM.liblink
new file mode 100644
index 0000000..637ea7c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDReqM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 666dd6af-e45f-4e7f-beea-96303e72f898
+VersionGuid: 3bbc627a-f824-4222-ac97-581602d7e8e6
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDRespM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDRespM.liblink
new file mode 100644
index 0000000..cb18b0a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDRespM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 2a4d2358-929f-416a-ba2b-c63071ebcdaa
+VersionGuid: 6a632efa-4407-41ef-a7a8-fa953df669b2
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDUM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDUM.liblink
new file mode 100644
index 0000000..90c8bc2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_GOHDUM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 6b8c1d9c-ed1f-43bc-b4c3-ee89a9f82d48
+VersionGuid: 9c25dc2e-f2be-47cf-9628-0317fba94bc4
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_INDX.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_INDX.liblink
new file mode 100644
index 0000000..01e78f7
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_INDX.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e4578b53-1c34-42ed-a514-2389474f800b
+VersionGuid: 8dc546c7-2d35-45f3-84dc-86ae313bc4de
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_UNLDResp.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_UNLDResp.liblink
new file mode 100644
index 0000000..c51e05a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_UNLDResp.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 4ec5a0dc-6784-4f7d-adbf-bb5e8a887d09
+VersionGuid: ada9d072-6cd7-4768-87bb-e79b0103f504
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_WSAD.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_WSAD.liblink
new file mode 100644
index 0000000..a4f8e51
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Payload/UDT_Payload_WSAD.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 02a407a3-e237-42cc-9013-54f199c192e9
+VersionGuid: 5ada2af7-f6aa-4747-aa84-b9a5a2ea2d11
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CRCanM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CRCanM.liblink
new file mode 100644
index 0000000..c095ced
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CRCanM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 48efb43c-e768-4132-9a1e-bbf659fda75d
+VersionGuid: 1f2b3a60-4a74-4b12-9fc1-ccdefd510dbd
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CRRespM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CRRespM.liblink
new file mode 100644
index 0000000..8ebde4b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CRRespM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7e8f29b8-eca6-4c82-abdd-dcb71dbc0bab
+VersionGuid: 3f60fc01-feb3-4101-9e02-31c435326321
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CReqM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CReqM.liblink
new file mode 100644
index 0000000..4e6fe0c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CReqM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 8022bccc-21b8-41da-b27d-9e71d6fbe3b3
+VersionGuid: e8c05940-59b8-42cc-9679-786dba66e486
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CSRespM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CSRespM.liblink
new file mode 100644
index 0000000..2089dc6
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CSRespM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: cf3e8640-6014-4787-ad9d-04fe2730f086
+VersionGuid: f100f284-17fd-4542-a407-f5ca979c19bb
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CTMP.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CTMP.liblink
new file mode 100644
index 0000000..632b51c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_CTMP.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 53619bd4-cd53-4bd3-ab4e-aa7b3ac45245
+VersionGuid: e71837a9-5569-4e0e-8e48-c2d876f13cfa
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_ECNT.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_ECNT.liblink
new file mode 100644
index 0000000..94ba1d9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_ECNT.liblink
@@ -0,0 +1,2 @@
+TypeGuid: cc95b33c-e64f-4305-83a1-edb363c135e7
+VersionGuid: cc8cf6d6-dda9-4b55-bdc0-e3345b81d39b
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDReqM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDReqM.liblink
new file mode 100644
index 0000000..098eb38
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDReqM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: d06db1be-8dfb-4e9b-a49a-2511b7966bc0
+VersionGuid: e5db6ab5-e08b-413f-9a74-4a92f058182c
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDRespM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDRespM.liblink
new file mode 100644
index 0000000..af29987
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDRespM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 12374bfa-2577-421f-a872-cfd768f73e33
+VersionGuid: 17fcd97d-078f-4749-a68f-734a3e964a58
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDUM.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDUM.liblink
new file mode 100644
index 0000000..ab7d5fb
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_GOHDUM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 700b1a41-37d3-4539-a842-1dce5ba90ed3
+VersionGuid: e1093720-3bee-493f-9d86-a5fe1fb9614b
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_INDX.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_INDX.liblink
new file mode 100644
index 0000000..8b25a2f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_INDX.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 66960c87-0f2c-4edb-a96b-10acafb08fb8
+VersionGuid: c5a3d699-bf3b-494f-82e7-f2d0ed88084d
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_UNLDResp.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_UNLDResp.liblink
new file mode 100644
index 0000000..6a209e9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_UNLDResp.liblink
@@ -0,0 +1,2 @@
+TypeGuid: a25ca67d-4f6c-4ccb-a424-5e1711d5b2b8
+VersionGuid: 77f4cf3f-ae71-4d7a-ac21-d8cd42b0bc17
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_WSAD.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_WSAD.liblink
new file mode 100644
index 0000000..111a88f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/Telegram/UDT_Telegram_WSAD.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 2868112d-1273-4a0c-aca3-1c7766d1ff78
+VersionGuid: 05508324-1f14-4c4e-bc12-0ca525293515
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/UDT_Header.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/UDT_Header.liblink
new file mode 100644
index 0000000..ddfd2da
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/UDT_Header.liblink
@@ -0,0 +1,2 @@
+TypeGuid: f59df3af-e54d-48fe-824c-e7866136355f
+VersionGuid: d4b4e5a3-ef08-47b6-a8d1-53ea3c7d9adc
diff --git a/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/UDT_Workstation.liblink b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/UDT_Workstation.liblink
new file mode 100644
index 0000000..d5add2a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/Fortna-WES-WCS/UDT_Workstation.liblink
@@ -0,0 +1,2 @@
+TypeGuid: d4f2ce6a-191a-47a3-a45c-c04bb1793be3
+VersionGuid: 3d139e0a-22d3-4d4c-b2c1-8f15ededfde7
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamConfig.liblink
new file mode 100644
index 0000000..ea67176
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 1ddce7e5-242b-4464-a0e7-b066a914b4f7
+VersionGuid: d53d3312-8aec-491b-ab1a-cc6a44e0f5ce
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamData.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamData.liblink
new file mode 100644
index 0000000..c48e378
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamData.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e09ba931-ab24-4b18-8a43-afef3eeb1921
+VersionGuid: 252760c3-1803-4302-8f47-dd828c2678b1
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamStatus.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamStatus.liblink
new file mode 100644
index 0000000..f477ca7
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stJamStatus.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e7f020f2-a247-4f5d-9690-9d9770f80f87
+VersionGuid: 7c3c1e57-c31e-4152-893d-f265a4b6f222
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageConfig.liblink
new file mode 100644
index 0000000..48715d3
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 843394f5-9dc8-4d27-b12b-f45613d99a7d
+VersionGuid: dd31f979-49ae-4241-9b52-2ebecdd977a2
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageData.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageData.liblink
new file mode 100644
index 0000000..91ef587
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageData.liblink
@@ -0,0 +1,2 @@
+TypeGuid: fa2564d4-1a10-400a-918f-8624127faeb6
+VersionGuid: 19e433b7-e839-4aab-95fc-f6902c197401
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageLine.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageLine.liblink
new file mode 100644
index 0000000..a994340
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageLine.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ec4fe52c-cf30-4e6b-a704-c8531a89da65
+VersionGuid: f59b5c77-3319-4499-843c-7e8a8da899b7
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageStatus.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageStatus.liblink
new file mode 100644
index 0000000..b3ec67f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/Storage/stStorageStatus.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ca24b447-abc3-449b-a8c1-21dbe238f0e7
+VersionGuid: b386d0be-b2b8-4929-a80b-8269a33c5ffc
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/EventLogging/stEventCorrectionInfo.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/EventLogging/stEventCorrectionInfo.liblink
new file mode 100644
index 0000000..4ee279e
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/EventLogging/stEventCorrectionInfo.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 77406f65-d326-40b7-8806-4eba40123000
+VersionGuid: ffd25bc8-8294-4342-8ce7-f912afc2ff0f
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_MTRO_Prio.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_MTRO_Prio.liblink
new file mode 100644
index 0000000..e64e02c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_MTRO_Prio.liblink
@@ -0,0 +1,2 @@
+TypeGuid: b4d5d6ca-cf66-497f-a4ea-5a850dec4413
+VersionGuid: c353e6f7-87d9-4400-a81b-36e8565ec9dc
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_PrioParameter.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_PrioParameter.liblink
new file mode 100644
index 0000000..7ab47bc
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_PrioParameter.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ac195f4d-7528-46fe-91c5-5b291bdec8f5
+VersionGuid: 151e4c54-a932-45b5-9177-45a33c57784a
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_Request.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_Request.liblink
new file mode 100644
index 0000000..9fc972b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_Request.liblink
@@ -0,0 +1,2 @@
+TypeGuid: a8b25178-7578-447c-852f-a21404c4bfd6
+VersionGuid: 74ec709b-866d-46f6-abc6-f5fa026b4bb7
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_Response.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_Response.liblink
new file mode 100644
index 0000000..8bf4baa
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/PriorityManager/UDT_Response.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7c3b5bd8-2bd0-4142-8573-13628f5f670b
+VersionGuid: fc376672-43cb-4b4c-8862-daf93d007513
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/IntfSeparator.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/IntfSeparator.liblink
new file mode 100644
index 0000000..03ddbd9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/IntfSeparator.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 877895f5-b783-4a5d-bf45-e5aa8c52970f
+VersionGuid: 7a81ff69-aa42-4807-983a-58b7ed9583d0
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/SettingsSeparator.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/SettingsSeparator.liblink
new file mode 100644
index 0000000..f26020e
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/SettingsSeparator.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 2e3914bf-0036-4580-8965-c56b76bd2003
+VersionGuid: 31baee87-a116-43f0-b516-bd7914a74d0b
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_Separator.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_Separator.liblink
new file mode 100644
index 0000000..f59c059
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_Separator.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 4facddbf-79fc-4650-bf17-d05e9e31b010
+VersionGuid: 844e29dc-63f2-4fef-9e67-331444a7f3cc
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorConfig.liblink
new file mode 100644
index 0000000..9a9ab95
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7471d821-806b-499d-9418-56461cc6b168
+VersionGuid: a2c5419c-9cf7-473b-9fd8-031a55043337
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorControl.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorControl.liblink
new file mode 100644
index 0000000..03a17b8
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorControl.liblink
@@ -0,0 +1,2 @@
+TypeGuid: c96bc9f6-9ee8-4c73-a126-a839ed69f4dc
+VersionGuid: 34a7aa2d-a226-4ff4-a1dd-02edfed02927
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorError.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorError.liblink
new file mode 100644
index 0000000..fa37d3f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorError.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 371d13d8-9fe5-4b50-b1ed-7c9f4e958058
+VersionGuid: 264ad080-8c27-4751-8173-72e706002d25
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorStatus.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorStatus.liblink
new file mode 100644
index 0000000..3fc51b0
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Separator/UDT_HMI_SeparatorStatus.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 86f8883d-433f-4543-98ce-b60a55b59c03
+VersionGuid: dfc8b4c9-df23-466b-9ef8-77835fd74ff8
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/IntfSwitch.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/IntfSwitch.liblink
new file mode 100644
index 0000000..86541bc
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/IntfSwitch.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 8a5e89a8-ccaf-4a9c-a733-f8d2084da0f6
+VersionGuid: 88616827-870a-4dfa-a549-e50acd9b24e5
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/S2MSwitch.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/S2MSwitch.liblink
new file mode 100644
index 0000000..45f768a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/S2MSwitch.liblink
@@ -0,0 +1,2 @@
+TypeGuid: c3123c93-54bd-4570-b464-beb88c7c672e
+VersionGuid: b62f2f76-ed11-4659-9833-ccaf2f344fd2
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/SettingsSwitch.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/SettingsSwitch.liblink
new file mode 100644
index 0000000..b80cb44
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Switch/SettingsSwitch.liblink
@@ -0,0 +1,2 @@
+TypeGuid: b987a8e1-c731-454f-8aef-c7a57cfd0be8
+VersionGuid: 594ad732-b8d7-4688-b883-1436e5f7c5eb
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/SettingsVario.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/SettingsVario.liblink
new file mode 100644
index 0000000..ca9530d
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/SettingsVario.liblink
@@ -0,0 +1,2 @@
+TypeGuid: f264aab0-1862-4125-b62f-509a81d1119d
+VersionGuid: 7f0024cb-17d0-4a97-88be-c6a1c812ecbd
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_SettingsVarioFingerMonitoring.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_SettingsVarioFingerMonitoring.liblink
new file mode 100644
index 0000000..5a97671
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_SettingsVarioFingerMonitoring.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 6dc43587-53cd-4590-bf75-c379c9999bb5
+VersionGuid: b8bd3d69-0f56-4726-85de-e4f319ab8fda
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario.liblink
new file mode 100644
index 0000000..02015fc
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario.liblink
@@ -0,0 +1,2 @@
+TypeGuid: bfb39b7e-4084-4427-a1bc-c6e73fd0956d
+VersionGuid: e5da11d7-315b-4260-aa84-5d7366ea5a96
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Config.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Config.liblink
new file mode 100644
index 0000000..60f4251
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Config.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 18f99447-56a8-47ed-ada8-26d8690d4156
+VersionGuid: d63c4a33-def0-485c-b063-5612c8cfbfd6
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Control.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Control.liblink
new file mode 100644
index 0000000..278cd38
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Control.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 44e87796-3e1b-411a-90d9-fd8646985fa8
+VersionGuid: f93abcca-8010-4685-9e9d-314a45d61c46
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Status.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Status.liblink
new file mode 100644
index 0000000..429903d
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/Vario/UDT_Vario_Status.liblink
@@ -0,0 +1,2 @@
+TypeGuid: a65ddd12-dbf3-4d75-b457-97518258b198
+VersionGuid: 4d9adf77-28b8-4879-979e-12eadb52a01f
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/stCarrier.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/stCarrier.liblink
new file mode 100644
index 0000000..c5d176b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/stCarrier.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e1e80a27-a133-4f03-83be-6ca64e2b017e
+VersionGuid: 85ebb5d6-2793-4e8b-a9d6-e9553e3d00af
diff --git a/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/stSimuJamConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/stSimuJamConfig.liblink
new file mode 100644
index 0000000..d320e6b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/ILSLib/UDT/stSimuJamConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 09dc13df-4eb4-40b9-8f69-07fae8449920
+VersionGuid: 9c95005a-bc1a-478a-a4ce-272b58a3351f
diff --git a/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH01_Data.xml b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH01_Data.xml
new file mode 100644
index 0000000..b779ba7
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH01_Data.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ to do
+
+
+
+
+ Füllstand Highway von Lager zu Inbound Empty (zu Kreisel)
+
+
+
+
+ Füllstand Highway von Lager zu AMR Loaded (lange Strecke)
+
+
+
+
+ Füllstand Highway von Inbound zu Lager Loaded (lange Strecke)
+
+
+
+
+ Füllstand Highway von Inbound zu Lager Empty (von Kreisel)
+
+
+
+
+ Füllstand Highway von AMR zu Kreisel
+
+
+
+
+
+ Empty Carrier benötigt
+
+
+
+
+ Inbound Puffer voll
+
+
+
+
+ Stau Highway von Lager zu Inbound Empty (zu Kreisel)
+
+
+
+
+ Stau Highway von Lager zu AMR Loaded (lange Strecke)
+
+
+
+
+ Stau Highway von Inbound zu Lager Loaded (lange Strecke)
+
+
+
+
+ Stau Highway von Inbound zu Lager Empty (von Kreisel)
+
+
+
+
+ Stau Highway von AMR zu Kreisel
+
+
+
+
+ UZ1105 Bereichshalt auf Highway
+
+
+
+
+ IO_Device_UH01_Data
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH02_Data.xml b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH02_Data.xml
new file mode 100644
index 0000000..617161a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH02_Data.xml
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ to do
+
+
+
+
+
+ Füllstand Zufuhr von Level 2 Block 1
+
+
+
+
+ Füllstand Zufuhr von Level 2 Block 2
+
+
+
+
+ Füllstand Zufuhr von Level 2 Block 3
+
+
+
+
+ Füllstand Block 1.1.1
+
+
+
+
+ Füllstand Block 1.1.2
+
+
+
+
+ Füllstand Block 1.1.3
+
+
+
+
+ Füllstand Block 1.2.1
+
+
+
+
+ Füllstand Block 1.2.2
+
+
+
+
+ Füllstand Block 1.2.3
+
+
+
+
+ Füllstand Block 1.3.1
+
+
+
+
+ Füllstand Block 1.3.2
+
+
+
+
+ Füllstand Block 1.3.3
+
+
+
+
+
+ Verteilerkreisel voll
+
+
+
+
+ Stau Zufuhr von Level 2 Block 1
+
+
+
+
+ Stau Zufuhr von Level 2 Block 2
+
+
+
+
+ Stau Zufuhr von Level 2 Block 3
+
+
+
+
+ gesperrt Block 1.1.1
+
+
+
+
+ gesperrt Block 1.1.2
+
+
+
+
+ gesperrt Block 1.1.3
+
+
+
+
+ gesperrt Block 1.2.1
+
+
+
+
+ gesperrt Block 1.2.2
+
+
+
+
+ gesperrt Block 1.2.3
+
+
+
+
+ gesperrt Block 1.3.1
+
+
+
+
+ gesperrt Block 1.3.2
+
+
+
+
+ gesperrt Block 1.3.3
+
+
+
+
+ UZ0208 Bereichshalt an Übergang 1 -> 2
+
+
+
+
+ UZ2204 Bereichshalt an Übergang 1 -> 2
+
+
+
+
+ UZ2207 Bereichshalt an Übergang 1 -> 2
+
+
+
+
+ UZ0204 Bereichshalt Zwischen Section 2 / 3
+
+
+
+
+ UZ0209 Bereichshalt am Verteilkreisel
+
+
+
+
+ UZ0210 Bereichshalt am Verteilkreisel
+
+
+
+
+ UZ0211 Bereichshalt am BST
+
+
+
+
+ IO_Device_UH02_Data
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH03_Data.xml b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH03_Data.xml
new file mode 100644
index 0000000..6e91d49
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH03_Data.xml
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
+
+
+ Übergabe Carrier 1
+
+
+
+
+ true
+
+
+ Übergabe Carrier 2
+
+
+
+
+ true
+
+
+ Übergabe Carrier 3
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+ Kontroll-Bits für Triggern und Ack
+
+
+
+
+ Neu hinzugefügt für Level 2 <-> Level 1 bei Blöcken
+
+
+
+
+ Füllstand Zufuhr von F2H
+
+
+
+
+ Füllstand Zufuhr von Highway Loaded
+
+
+
+
+ Füllstand Zufuhr von Highway Empty
+
+
+
+
+ Füllstand Block 2.1.1
+
+
+
+
+ Füllstand Block 2.1.2
+
+
+
+
+ Füllstand Block 2.1.3
+
+
+
+
+ Füllstand Block 2.2.1
+
+
+
+
+ Füllstand Block 2.2.2
+
+
+
+
+ Füllstand Block 2.2.3
+
+
+
+
+ Füllstand Block 2.3.1
+
+
+
+
+ Füllstand Block 2.3.2
+
+
+
+
+ Füllstand Block 2.3.3
+
+
+
+
+
+ Stau Zufuhr von F2H
+
+
+
+
+ Stau Zufuhr von Highway Loaded
+
+
+
+
+ Stau Zufuhr von Highway Empty
+
+
+
+
+ gesperrt Block 2.1.1
+
+
+
+
+ gesperrt Block 2.1.2
+
+
+
+
+ gesperrt Block 2.1.3
+
+
+
+
+ gesperrt Block 2.2.1
+
+
+
+
+ gesperrt Block 2.2.2
+
+
+
+
+ gesperrt Block 2.2.3
+
+
+
+
+ gesperrt Block 2.3.1
+
+
+
+
+ gesperrt Block 2.3.2
+
+
+
+
+ gesperrt Block 2.3.3
+
+
+
+
+ UZ3103 / UZ3104 Bereichshalt an Übergang 2 -> 1
+
+
+
+
+ UZ0307 / UZ0308 Bereichshalt an Übergang 2 -> 1
+
+
+
+
+ UZ3303 / UZ3304 Bereichshalt an Übergang 2 -> 1
+
+
+
+
+ UZ0309 Bereichshalt am Verteilkreisel
+
+
+
+
+ UZ0311 Bereichshalt am BST
+
+
+
+
+ UZ0312 Bereichshalt auf Highway
+
+
+
+
+ IO_Device_UH03_Data
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH04_Data.xml b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH04_Data.xml
new file mode 100644
index 0000000..a2c67a6
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH04_Data.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ to do
+
+
+
+
+ Füllstand Zufuhr AMR
+
+
+
+
+ Füllstand Abfuhr AMR
+
+
+
+
+
+ Loaded Carrier benötigt
+
+
+
+
+ AMR Zufuhr stoppen
+
+
+
+
+ Workstation 1 aktiv
+
+
+
+
+ Workstation 2 aktiv
+
+
+
+
+ Workstation 3 aktiv
+
+
+
+
+ Stau Zufuhr AMR
+
+
+
+
+ Stau Abfuhr AMR
+
+
+
+
+ IO_Device_UH04_Data
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH05_Data.xml b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH05_Data.xml
new file mode 100644
index 0000000..b8396fc
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/IO Device Datentypen/IO_Device_UH05_Data.xml
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ to do
+
+ 16#0
+
+
+
+ Füllstand Zufuhr Empty
+
+ 0
+
+
+
+ Füllstand Zufuhr Loaded
+
+ 0
+
+
+ false
+
+
+
+ Kreisel voll
+
+ false
+
+
+
+ Bedarf mehr Empty Jets
+
+ false
+
+
+
+ Bedarf mehr Loaded Jets
+
+ false
+
+
+
+ F2H Zufuhr Empty stoppen
+
+ false
+
+
+
+ F2H Zufuhr Loaded stoppen
+
+ false
+
+
+
+ Stau Zufuhr Empty
+
+ false
+
+
+
+ Stau Zufuhr Loaded
+
+ false
+
+
+
+ Workstation 1 aktiv
+
+ false
+
+
+
+ Workstation 2 aktiv
+
+ false
+
+
+
+ Workstation 3 aktiv
+
+ false
+
+
+
+ Workstation 4 aktiv
+
+ false
+
+
+
+ Workstation 5 aktiv
+
+ false
+
+
+
+ IO_Device_UH05_Data
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/LCom/LCom_typeConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/LCom/LCom_typeConfig.liblink
new file mode 100644
index 0000000..7e2bb5b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/LCom/LCom_typeConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 337bf861-102c-424e-907d-c3666e4b4456
+VersionGuid: 5299d993-ad7e-4f88-a154-f3b0d8b9b9e0
diff --git a/=A01+UH04-KF00/PLC-Datentypen/LCom/LCom_typeDiagnostics.liblink b/=A01+UH04-KF00/PLC-Datentypen/LCom/LCom_typeDiagnostics.liblink
new file mode 100644
index 0000000..7f5ae55
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/LCom/LCom_typeDiagnostics.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e88e7bd4-0f02-4559-b3b2-424959119a24
+VersionGuid: 7319b4c6-d0d9-4472-9c6b-e1d4864ea743
diff --git a/=A01+UH04-KF00/PLC-Datentypen/LStream_typeElement.liblink b/=A01+UH04-KF00/PLC-Datentypen/LStream_typeElement.liblink
new file mode 100644
index 0000000..75a82df
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/LStream_typeElement.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7c39a02f-f960-4e4e-a8fe-c76a6c2fcc8e
+VersionGuid: 9e76c95f-a988-4ec6-aa76-be21173129e5
diff --git a/=A01+UH04-KF00/PLC-Datentypen/SearchResult.xml b/=A01+UH04-KF00/PLC-Datentypen/SearchResult.xml
new file mode 100644
index 0000000..cfe22ca
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/SearchResult.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+ SearchResult
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/TRO_Manager/IntfTroManager.xml b/=A01+UH04-KF00/PLC-Datentypen/TRO_Manager/IntfTroManager.xml
new file mode 100644
index 0000000..d12247a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/TRO_Manager/IntfTroManager.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+ IntfTroManager
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Datentypen/UDT_GOHStatus.liblink b/=A01+UH04-KF00/PLC-Datentypen/UDT_GOHStatus.liblink
new file mode 100644
index 0000000..f042d30
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/UDT_GOHStatus.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ec8b8dcc-ac36-4ab9-aaa3-92469ee4c691
+VersionGuid: e1ac311e-589a-4372-9dec-5672da290beb
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamConfig.liblink
new file mode 100644
index 0000000..ff0d623
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: adb606ab-324d-4fdb-a09c-2ad466b32903
+VersionGuid: d7b77ea5-f92b-4fa0-a83a-330b43251da7
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamData.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamData.liblink
new file mode 100644
index 0000000..0339dc0
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamData.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 706046de-a07c-4079-a33e-00ecf57aae27
+VersionGuid: 2a77e08a-2168-4473-b3dd-baa29b3bc0e4
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamStatus.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamStatus.liblink
new file mode 100644
index 0000000..f0f95b4
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/Jam/UDT_HMI_JamStatus.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 91abd28c-b27c-40fc-aa29-b9ccf1038af8
+VersionGuid: 8b7a1f1f-bf72-48c9-a434-4ba9381d476b
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/JamListen/UDT_Visu_Jam_List.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/JamListen/UDT_Visu_Jam_List.liblink
new file mode 100644
index 0000000..eb25b33
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/JamListen/UDT_Visu_Jam_List.liblink
@@ -0,0 +1,2 @@
+TypeGuid: a569df31-8bc8-465a-ab7f-10cfe3ab2c61
+VersionGuid: 69cad2b9-105b-4cbd-ba2e-a12884f705ac
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Conveyor.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Conveyor.liblink
new file mode 100644
index 0000000..cd919fb
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Conveyor.liblink
@@ -0,0 +1,2 @@
+TypeGuid: fc3e953e-8c4b-43b2-bb34-349b65059802
+VersionGuid: 2901dec2-9378-4f00-91c8-1e2b94ec70ea
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_HMI_Monitoring.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_HMI_Monitoring.liblink
new file mode 100644
index 0000000..3759c51
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_HMI_Monitoring.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 1318a870-c8b2-4276-897a-cd2ea2f4218c
+VersionGuid: 5ca767c2-29a7-4ab8-9216-04d3eb721ae9
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_HMI_TRO.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_HMI_TRO.liblink
new file mode 100644
index 0000000..0c7f77d
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_HMI_TRO.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ef43cebe-2a8c-4da7-88df-8b7957091968
+VersionGuid: f233daa7-f3c9-4c51-848f-9442d6da7a88
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Panel_EmergencyStop.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Panel_EmergencyStop.liblink
new file mode 100644
index 0000000..4316dc6
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Panel_EmergencyStop.liblink
@@ -0,0 +1,2 @@
+TypeGuid: d9f82bf9-35d8-4b74-bc69-e401448fbf16
+VersionGuid: 27f2f7ec-1c14-4867-a396-00e77935e121
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TCP.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TCP.liblink
new file mode 100644
index 0000000..2e0f906
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TCP.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 8b83763f-2f41-46ae-a8cd-de0501ec9422
+VersionGuid: a0d49aff-bd39-4bc7-8aa3-f87ec57e9300
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TCP_Param.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TCP_Param.liblink
new file mode 100644
index 0000000..fd0b632
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TCP_Param.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e60bd250-70b3-4cff-80ba-3a723c7839d2
+VersionGuid: 2f61f4d3-d116-462b-8443-1c65acd21c13
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROConfig.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROConfig.liblink
new file mode 100644
index 0000000..903b9e5
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROConfig.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 81115fd3-a033-4d1e-9ef0-41d839b84581
+VersionGuid: b35a49c0-95d8-4cb2-82c8-4bfaccf74f0b
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROCtrl.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROCtrl.liblink
new file mode 100644
index 0000000..0485674
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROCtrl.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 0aa56e8c-afed-4343-a462-60d83cbdddb9
+VersionGuid: 29b196f7-9ed6-4672-aaba-212f20cd63de
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROState.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROState.liblink
new file mode 100644
index 0000000..a5cb4d2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_TROState.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 65033815-61c9-4fc1-9c62-4a635fbbcbc2
+VersionGuid: 8542fb20-c1df-4944-9f28-bc8bed0abdc5
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_UnloadingStation.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_UnloadingStation.liblink
new file mode 100644
index 0000000..a5842e4
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_UnloadingStation.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 9352b614-97cb-414d-a3ee-03a180f36707
+VersionGuid: 073eb434-cda0-4734-a493-971f2fcce9ab
diff --git a/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Visu_Jam_CarMove.liblink b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Visu_Jam_CarMove.liblink
new file mode 100644
index 0000000..d733c1b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Datentypen/VisuLib/UDT_Visu_Jam_CarMove.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 09c37f92-e226-4ff7-9888-dfa763483803
+VersionGuid: 6bb216c4-d740-4e6d-b97c-d9f6fa658688
diff --git a/=A01+UH04-KF00/PLC-Variablen/960_Logging.xml b/=A01+UH04-KF00/PLC-Variablen/960_Logging.xml
new file mode 100644
index 0000000..cd855d5
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/960_Logging.xml
@@ -0,0 +1,228 @@
+
+
+
+
+
+ 960_Logging
+
+
+
+
+ Int
+ E_LogLevel.WARNING
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ E_LogLevel.DEBUG
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cWs(1)
+ 500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Für WString SENDEN
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoTempDataLog(1)
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ E_LogLevel.ERROR
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ E_LogLevel.INFO
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ E_LogLevel.INT_ERROR
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Ausgänge.xml b/=A01+UH04-KF00/PLC-Variablen/Ausgänge.xml
new file mode 100644
index 0000000..592694b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Ausgänge.xml
@@ -0,0 +1,2305 @@
+
+
+
+
+
+ Ausgänge
+
+
+
+
+ Bool
+ %Q343.0
+ MB3430
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator vor MPS 1 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.0
+ PF0050
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Betriebsbereit UZ0409
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q326.0
+ MB3260
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator 4 (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.0
+ PF0000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LM Störung
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.3
+ PF0003
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LM Druckluft fehlt
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q336.2
+ MB3362
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ AE Abzweig (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.4
+ MA0064
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0064 (ILS-CV-M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q342.0
+ MB3420
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.5
+ PF0005
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LM Sicherung hat ausgelöst
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q1.3
+ KF0013
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Feedback Koppelrelais Kanal 4 E-Stop-IF
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.3
+ PF0053
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reset UZ0403
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.6
+ PF0056
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Betriebsbereit UZ0401
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.5
+ PF0055
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reset UZ0402
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q61.1
+ QA0611
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Hauptschütze 1 Aktivieren Kanal 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.5
+ MA0065
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0065 (ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.1
+ MA0061
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0061 (ILS-CV-M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.7
+ PF0057
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reset UZ0401
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q339.1
+ MB3391
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q343.5
+ MB3435
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator(AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q342.4
+ MB3424
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q7.2
+ MA0072
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0072 (ILS-CV-M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q324.2
+ MB3242
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q61.3
+ QA0613
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Hauptschütze 1 Aktivieren Kanal 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q336.6
+ MB3366
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ AE Abzweig (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.2
+ PF0002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LDT Start nach Störung
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.3
+ MA0063
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0063 (ILS-CV-M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.6
+ PF0006
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LM Brandfall
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q61.2
+ QA0612
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Hauptschütze 1 Aktivieren Kanal 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q345.1
+ MB3451
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator Ausfahrt MPS 1 (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q330.4
+ MB3304
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator 1 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q7.1
+ MA0071
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0071 (ILS-CV-M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q324.7
+ MB3247
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator vor BST (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.1
+ PF0001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LDT Anlage Ein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q343.2
+ MB3432
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ AE Abzweig (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.2
+ PF0052
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Betriebsbereit UZ0403
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q332.1
+ MB3321
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator 2 Ausfahrt MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q344.0
+ MB3440
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q338.3
+ MB3383
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q330.6
+ MB3306
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ AE Abzweig (AMR ILS-CV)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q338.1
+ MB3381
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator Ausfahrt MPS 2 (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q325.2
+ MB3252
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator vor BST (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.2
+ MA0062
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0062 (ILS-CV-M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q336.3
+ MB3363
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator 5 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.1
+ PF0051
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reset UZ0409
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q330.0
+ MB3300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator 6 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.0
+ MA0060
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Motor MA0060 (ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q0.4
+ PF0004
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LM Motorschutz hat ausgelöst
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q61.0
+ QA0610
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Hauptschütze 1 Aktivieren Kanal 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q1.4
+ PF0014
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Feedback Koppelrelais Kanal 1 E-Stop-IF
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q7.3
+ MA0073
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0073 (ILS-CV-M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q6.6
+ MA0066
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0066 (ILS-CV-M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q5.4
+ PF0054
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Betriebsbereit UZ0402
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q336.0
+ MB3360
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q337.0
+ MB3370
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q338.6
+ MB3386
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q325.0
+ MB3250
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q7.0
+ MA0070
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0070 (ILS-CV-M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q331.0
+ MB3310
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q7.4
+ MA0074
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Motor MA0074 (ILS-CV-M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q339.7
+ MB3397
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-KR M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q332.6
+ MB3326
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-KR M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q343.6
+ MB3436
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator (AMR ILS-KR M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q340.0
+ MB3400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Separator TRO424 (AMR ILS-KR M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q66.0
+ QA0660
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH1 (für Omniflo)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q66.2
+ QA0662
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH1 (Reserve)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q66.3
+ QA0663
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH2 (Reserve)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q66.1
+ QA0661
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH2 (für Omniflo)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q3.2
+ PF0032
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Signalsäule Grün " Betriebsbereit"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q3.3
+ PF0033
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Signalsäule Hupe " Anfahrwarnung"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q3.0
+ PF0030
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Signalsäule Rot "E-Stop / Brand"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q3.1
+ PF0031
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Signalsäule Gelb " Störung"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q331.1
+ PF3311
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ "call for help" MPS 3 Signalsäule gelb
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q337.1
+ PF3371
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ "call for help" MPS 2 Signalsäule gelb
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q343.1
+ PF3431
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ "call for help" MPS 1 Signalsäule gelb
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/BarcodeLeser.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/BarcodeLeser.xml
new file mode 100644
index 0000000..ee0893c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/BarcodeLeser.xml
@@ -0,0 +1,290 @@
+
+
+
+
+
+ BarcodeLeser
+
+
+
+
+ Int
+ cScannerBX4103
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4101
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4100
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoScanner
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4106
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4102
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4104
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4107
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cScannerBX4105
+ 6
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4100.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4100.xml
new file mode 100644
index 0000000..fb11aff
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4100.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4100
+
+
+
+
+ Word
+ %IW10065
+ bx4100-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10003.3
+ bx4100-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10067
+ bx4100-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10083
+ bx4100-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10003.2
+ bx4100-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.1
+ bx4100-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10065
+ bx4100-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.0
+ bx4100-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10072
+ bx4100-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.3
+ bx4100-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10001
+ bx4100-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.1
+ bx4100-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10063
+ bx4100-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.4
+ bx4100-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10003.7
+ bx4100-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10076
+ bx4100-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10085
+ bx4100-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10078
+ bx4100-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10077
+ bx4100-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10077
+ bx4100-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10071
+ bx4100-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10082
+ bx4100-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10084
+ bx4100-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10080
+ bx4100-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.6
+ bx4100-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.0
+ bx4100-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10073
+ bx4100-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10070
+ bx4100-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10075
+ bx4100-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10086
+ bx4100-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10073
+ bx4100-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10081
+ bx4100-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10081
+ bx4100-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10080
+ bx4100-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10082
+ bx4100-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10067
+ bx4100-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10075
+ bx4100-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10001.1
+ bx4100-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10074
+ bx4100-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10069
+ bx4100-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10074
+ bx4100-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10003.1
+ bx4100-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10079
+ bx4100-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10063
+ bx4100-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10072
+ bx4100-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.6
+ bx4100-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10000.0
+ bx4100-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10076
+ bx4100-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.7
+ bx4100-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.2
+ bx4100-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10000.3
+ bx4100-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10000.0
+ bx4100-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10000.2
+ bx4100-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.7
+ bx4100-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10078
+ bx4100-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10000.1
+ bx4100-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10071
+ bx4100-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.2
+ bx4100-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10004.3
+ bx4100-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10002.4
+ bx4100-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10068
+ bx4100-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10079
+ bx4100-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10003.0
+ bx4100-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10001.0
+ bx4100-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10069
+ bx4100-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10000.1
+ bx4100-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4101.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4101.xml
new file mode 100644
index 0000000..7b4888f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4101.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4101
+
+
+
+
+ Byte
+ %QB10219
+ bx4101-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.0
+ bx4101-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.1
+ bx4101-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10215
+ bx4101-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10151
+ bx4101-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10222
+ bx4101-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10222
+ bx4101-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10231
+ bx4101-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10218
+ bx4101-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10230
+ bx4101-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10151.1
+ bx4101-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.3
+ bx4101-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10234
+ bx4101-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10217
+ bx4101-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10150.2
+ bx4101-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.4
+ bx4101-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10232
+ bx4101-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10219
+ bx4101-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10229
+ bx4101-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10213
+ bx4101-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10232
+ bx4101-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10229
+ bx4101-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10150.3
+ bx4101-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10153.3
+ bx4101-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10150.0
+ bx4101-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10236
+ bx4101-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.2
+ bx4101-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10228
+ bx4101-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10153.1
+ bx4101-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10220
+ bx4101-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.3
+ bx4101-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10215
+ bx4101-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10225
+ bx4101-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.6
+ bx4101-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10150.1
+ bx4101-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10150.0
+ bx4101-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10151.0
+ bx4101-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10224
+ bx4101-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10233
+ bx4101-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10228
+ bx4101-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10224
+ bx4101-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.7
+ bx4101-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10213
+ bx4101-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10217
+ bx4101-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10227
+ bx4101-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10227
+ bx4101-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10225
+ bx4101-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10223
+ bx4101-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10226
+ bx4101-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10221
+ bx4101-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10153.7
+ bx4101-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10150.1
+ bx4101-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.2
+ bx4101-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.4
+ bx4101-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10226
+ bx4101-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.0
+ bx4101-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10153.2
+ bx4101-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.1
+ bx4101-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10154.7
+ bx4101-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10223
+ bx4101-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10235
+ bx4101-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10152.6
+ bx4101-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10153.0
+ bx4101-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10221
+ bx4101-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10231
+ bx4101-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10230
+ bx4101-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4102.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4102.xml
new file mode 100644
index 0000000..f517c8a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4102.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4102
+
+
+
+
+ Byte
+ %QB10373
+ bx4102-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10367
+ bx4102-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10300.2
+ bx4102-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10300.1
+ bx4102-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10300.3
+ bx4102-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10301.0
+ bx4102-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10300.0
+ bx4102-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10303.0
+ bx4102-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10300.0
+ bx4102-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10363
+ bx4102-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10378
+ bx4102-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.7
+ bx4102-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10303.7
+ bx4102-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10365
+ bx4102-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.0
+ bx4102-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10371
+ bx4102-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10375
+ bx4102-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10303.1
+ bx4102-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10377
+ bx4102-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10369
+ bx4102-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10372
+ bx4102-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10384
+ bx4102-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10372
+ bx4102-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10369
+ bx4102-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10381
+ bx4102-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10374
+ bx4102-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.6
+ bx4102-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10377
+ bx4102-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10379
+ bx4102-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10303.3
+ bx4102-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10374
+ bx4102-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.6
+ bx4102-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.2
+ bx4102-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10373
+ bx4102-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10376
+ bx4102-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10379
+ bx4102-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.3
+ bx4102-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.2
+ bx4102-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10376
+ bx4102-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10375
+ bx4102-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10363
+ bx4102-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10385
+ bx4102-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10382
+ bx4102-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10300.1
+ bx4102-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10365
+ bx4102-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10368
+ bx4102-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10303.2
+ bx4102-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.7
+ bx4102-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10380
+ bx4102-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10383
+ bx4102-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10370
+ bx4102-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10371
+ bx4102-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10386
+ bx4102-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10301
+ bx4102-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10367
+ bx4102-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.1
+ bx4102-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.0
+ bx4102-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10380
+ bx4102-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10381
+ bx4102-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10382
+ bx4102-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10378
+ bx4102-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.4
+ bx4102-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.1
+ bx4102-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10302.4
+ bx4102-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10301.1
+ bx4102-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10304.3
+ bx4102-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4103.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4103.xml
new file mode 100644
index 0000000..b8be9e9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4103.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4103
+
+
+
+
+ Bool
+ %Q10452.4
+ bx4103-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10536
+ bx4103-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10522
+ bx4103-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10519
+ bx4103-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10531
+ bx4103-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10453.3
+ bx4103-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10519
+ bx4103-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10520
+ bx4103-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10450.0
+ bx4103-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.4
+ bx4103-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10453.0
+ bx4103-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10518
+ bx4103-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.1
+ bx4103-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10451
+ bx4103-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10450.1
+ bx4103-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10528
+ bx4103-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10528
+ bx4103-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.3
+ bx4103-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10453.7
+ bx4103-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10515
+ bx4103-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10452.6
+ bx4103-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10534
+ bx4103-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10527
+ bx4103-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10530
+ bx4103-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10452.3
+ bx4103-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10517
+ bx4103-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10525
+ bx4103-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10529
+ bx4103-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10452.0
+ bx4103-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10522
+ bx4103-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.7
+ bx4103-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10523
+ bx4103-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10452.7
+ bx4103-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10450.0
+ bx4103-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10529
+ bx4103-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10521
+ bx4103-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10524
+ bx4103-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10453.1
+ bx4103-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.2
+ bx4103-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10525
+ bx4103-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10450.2
+ bx4103-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10515
+ bx4103-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10526
+ bx4103-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10452.2
+ bx4103-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10523
+ bx4103-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10524
+ bx4103-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.6
+ bx4103-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10452.1
+ bx4103-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10531
+ bx4103-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10532
+ bx4103-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10450.1
+ bx4103-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10451.0
+ bx4103-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10453.2
+ bx4103-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10526
+ bx4103-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10513
+ bx4103-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10533
+ bx4103-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10450.3
+ bx4103-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10532
+ bx4103-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10451.1
+ bx4103-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10521
+ bx4103-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10530
+ bx4103-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10527
+ bx4103-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10513
+ bx4103-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10535
+ bx4103-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10517
+ bx4103-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10454.0
+ bx4103-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4104.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4104.xml
new file mode 100644
index 0000000..cb8409b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4104.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4104
+
+
+
+
+ Bool
+ %I10604.4
+ bx4104-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10601
+ bx4104-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10680
+ bx4104-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.3
+ bx4104-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10684
+ bx4104-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10681
+ bx4104-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10669
+ bx4104-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10604.7
+ bx4104-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10665
+ bx4104-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10669
+ bx4104-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10671
+ bx4104-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10601.0
+ bx4104-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10678
+ bx4104-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.1
+ bx4104-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10683
+ bx4104-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10667
+ bx4104-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10603.0
+ bx4104-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.2
+ bx4104-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10670
+ bx4104-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10604.2
+ bx4104-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10676
+ bx4104-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10681
+ bx4104-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10671
+ bx4104-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10668
+ bx4104-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10685
+ bx4104-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10673
+ bx4104-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10604.6
+ bx4104-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10680
+ bx4104-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10604.0
+ bx4104-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10600.2
+ bx4104-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10679
+ bx4104-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10675
+ bx4104-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10682
+ bx4104-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.0
+ bx4104-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10600.3
+ bx4104-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10677
+ bx4104-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10674
+ bx4104-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10663
+ bx4104-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10601.1
+ bx4104-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10600.0
+ bx4104-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10600.1
+ bx4104-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10679
+ bx4104-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10676
+ bx4104-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10672
+ bx4104-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10667
+ bx4104-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10686
+ bx4104-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10603.7
+ bx4104-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10672
+ bx4104-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10604.1
+ bx4104-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10682
+ bx4104-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.6
+ bx4104-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10604.3
+ bx4104-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10603.1
+ bx4104-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10603.3
+ bx4104-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10600.1
+ bx4104-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10663
+ bx4104-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10600.0
+ bx4104-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10603.2
+ bx4104-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10665
+ bx4104-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10675
+ bx4104-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.4
+ bx4104-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10674
+ bx4104-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10677
+ bx4104-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10673
+ bx4104-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10678
+ bx4104-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10602.7
+ bx4104-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4105.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4105.xml
new file mode 100644
index 0000000..9723f3e
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4105.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4105
+
+
+
+
+ Bool
+ %Q10750.1
+ bx4105-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10822
+ bx4105-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10750.0
+ bx4105-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10832
+ bx4105-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10828
+ bx4105-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.7
+ bx4105-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10819
+ bx4105-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10831
+ bx4105-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10821
+ bx4105-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10826
+ bx4105-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10828
+ bx4105-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10835
+ bx4105-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.3
+ bx4105-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10815
+ bx4105-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10750.2
+ bx4105-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10751
+ bx4105-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10753.7
+ bx4105-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10823
+ bx4105-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10836
+ bx4105-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.0
+ bx4105-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.6
+ bx4105-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10818
+ bx4105-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10827
+ bx4105-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.7
+ bx4105-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10750.3
+ bx4105-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10813
+ bx4105-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.1
+ bx4105-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10813
+ bx4105-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.0
+ bx4105-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10753.0
+ bx4105-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.3
+ bx4105-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10831
+ bx4105-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10827
+ bx4105-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10750.1
+ bx4105-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10825
+ bx4105-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.6
+ bx4105-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10753.2
+ bx4105-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10817
+ bx4105-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10823
+ bx4105-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10821
+ bx4105-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.2
+ bx4105-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10832
+ bx4105-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10752.4
+ bx4105-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10824
+ bx4105-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10815
+ bx4105-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10830
+ bx4105-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10750.0
+ bx4105-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10819
+ bx4105-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10825
+ bx4105-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10824
+ bx4105-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.2
+ bx4105-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.4
+ bx4105-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10753.3
+ bx4105-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10754.1
+ bx4105-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10830
+ bx4105-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10829
+ bx4105-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10817
+ bx4105-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10834
+ bx4105-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10753.1
+ bx4105-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10833
+ bx4105-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10822
+ bx4105-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10829
+ bx4105-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10826
+ bx4105-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10751.0
+ bx4105-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10751.1
+ bx4105-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10820
+ bx4105-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4106.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4106.xml
new file mode 100644
index 0000000..185dfc6
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4106.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4106
+
+
+
+
+ Bool
+ %I10903.0
+ bx4106-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10900.0
+ bx4106-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10975
+ bx4106-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10984
+ bx4106-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10973
+ bx4106-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10979
+ bx4106-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10982
+ bx4106-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.4
+ bx4106-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.1
+ bx4106-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10900.3
+ bx4106-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10901.0
+ bx4106-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10976
+ bx4106-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.3
+ bx4106-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.1
+ bx4106-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10977
+ bx4106-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.7
+ bx4106-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10983
+ bx4106-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10965
+ bx4106-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10976
+ bx4106-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10981
+ bx4106-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10965
+ bx4106-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10977
+ bx4106-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10979
+ bx4106-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10903.3
+ bx4106-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.4
+ bx4106-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10974
+ bx4106-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10971
+ bx4106-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10903.1
+ bx4106-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW10963
+ bx4106-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10975
+ bx4106-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10985
+ bx4106-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.2
+ bx4106-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10901
+ bx4106-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10963
+ bx4106-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10971
+ bx4106-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.7
+ bx4106-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10967
+ bx4106-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10972
+ bx4106-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10900.1
+ bx4106-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.3
+ bx4106-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10981
+ bx4106-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10901.1
+ bx4106-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10970
+ bx4106-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10973
+ bx4106-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10900.0
+ bx4106-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.6
+ bx4106-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q10902.0
+ bx4106-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.0
+ bx4106-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10974
+ bx4106-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10980
+ bx4106-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10967
+ bx4106-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10903.7
+ bx4106-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10986
+ bx4106-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10900.2
+ bx4106-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.6
+ bx4106-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10978
+ bx4106-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10982
+ bx4106-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10978
+ bx4106-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10968
+ bx4106-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW10969
+ bx4106-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB10969
+ bx4106-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10903.2
+ bx4106-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10980
+ bx4106-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10904.2
+ bx4106-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I10900.1
+ bx4106-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB10972
+ bx4106-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4107.xml b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4107.xml
new file mode 100644
index 0000000..8707a8d
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Barcode-Leser/bx4107.xml
@@ -0,0 +1,2057 @@
+
+
+
+
+
+ bx4107
+
+
+
+
+ Byte
+ %QB11122
+ bx4107-UserData[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW11117
+ bx4107-Result Extended
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11118
+ bx4107-UserData[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11126
+ bx4107-InspectionResults[5]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11053.7
+ bx4107-General Fault
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.0
+ bx4107-Train Code Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11125
+ bx4107-UserData[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11133
+ bx4107-InspectionResults[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11130
+ bx4107-UserData[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.6
+ bx4107-Execute DMCC
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11135
+ bx4107-InspectionResults[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11051.1
+ bx4107-ResultsAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.2
+ bx4107-Train Focus Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11127
+ bx4107-InspectionResults[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11050.3
+ bx4107-MissedAcq
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.7
+ bx4107-Set Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11127
+ bx4107-UserData[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11117
+ bx4107-UserData[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.1
+ bx4107-Train Match String Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11120
+ bx4107-UserData[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11050.2
+ bx4107-Acquiring
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11128
+ bx4107-InspectionResults[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11128
+ bx4107-UserData[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11134
+ bx4107-InspectionResults[13]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11122
+ bx4107-InspectionResults[1]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.7
+ bx4107-Set Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.3
+ bx4107-Train Brightness Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11124
+ bx4107-UserData[7]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW11113
+ bx4107-ResultID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.0
+ bx4107-Train Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW11115
+ bx4107-UserData Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11129
+ bx4107-UserData[12]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %QW11113
+ bx4107-UserData Option
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11123
+ bx4107-UserData[6]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11050.0
+ bx4107-TriggerReady
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11129
+ bx4107-InspectionResults[8]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11126
+ bx4107-UserData[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11130
+ bx4107-InspectionResults[9]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.1
+ bx4107-Train Match String
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11131
+ bx4107-UserData[14]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11131
+ bx4107-InspectionResults[10]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11124
+ bx4107-InspectionResults[3]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.4
+ bx4107-Untrain
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW11051
+ bx4107-TriggerID
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW11115
+ bx4107-Result Code
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11119
+ bx4107-UserData[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11121
+ bx4107-UserData[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %QB11132
+ bx4107-UserData[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.2
+ bx4107-Train Focus
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11050.0
+ bx4107-TriggerEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11053.0
+ bx4107-Decoding
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.6
+ bx4107-Execute DMCC Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11053.2
+ bx4107-Results Buffer Overrun
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11053.1
+ bx4107-Decode Complete
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11053.3
+ bx4107-Train Brightness
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11050.1
+ bx4107-TriggerAck
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11050.1
+ bx4107-Trigger
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11132
+ bx4107-InspectionResults[11]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ %IW11119
+ bx4107-Result Length
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11054.4
+ bx4107-Untrain Ack
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11123
+ bx4107-InspectionResults[2]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11125
+ bx4107-InspectionResults[4]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %Q11051.0
+ bx4107-BufferResultsEnable
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I11053.3
+ bx4107-Results Available
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11136
+ bx4107-InspectionResults[15]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %IB11121
+ bx4107-InspectionResults[0]
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Eingänge.xml b/=A01+UH04-KF00/PLC-Variablen/Eingänge.xml
new file mode 100644
index 0000000..7add0c6
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Eingänge.xml
@@ -0,0 +1,7358 @@
+
+
+
+
+
+ Eingänge
+
+
+
+
+ Bool
+ %I6.2
+ FC0062
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0062
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.1
+ BG3311
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I345.0
+ BG3450
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor Ausfahrt MPS 01 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.3
+ BG3443
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.6
+ BG3246
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor vor Vario Förderer (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I2.3
+ DI0023
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Vorsicherung 24V OK (FC023)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I6.0
+ FC0060
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0060
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.0
+ BG3430
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator vor MPS 1 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I326.2
+ BG3262
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.4
+ BG3424
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.6
+ BG3446
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position MPS 1 (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.1
+ BG3321
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator Ausfahrt MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I47.7
+ SF0477
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt Kanal 2 UZ0409
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.2
+ BG3312
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I1.1
+ DI0011
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ niu, Vorsicherung 400V UC Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.3
+ BG3393
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.1
+ BG3371
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor 3 (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.4
+ BG3444
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT IN Entladeposition MPS- (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.7
+ BG3427
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.7
+ BG3387
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor 3 (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I326.0
+ BG3260
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator 4 (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I47.6
+ SF0476
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH2 (Schnittstellensignale2) Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.5
+ BG3375
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4007) MPS 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.1
+ BG3251
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 1 (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.6
+ BG3386
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.2
+ BG3322
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor Ausfahrt MPS 03 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I2.2
+ DI0022
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Vorsicherung 24V OK (FC022)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.0
+ BG3390
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.5
+ BG3425
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I336.0
+ BG3360
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.4
+ BG3394
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I336.2
+ BG3362
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 5 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I7.0
+ FC0070
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0070
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I2.1
+ DI0021
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Vorsicherung 24V OK (FC021)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.6
+ BG3316
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position MPS 3 (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I2.5
+ SF0025
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT freigeben UZ0403, Workstation MPS 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.4
+ BG3244
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.0
+ SF0000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io. DT Anlage Aus
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.2
+ BG3252
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator vor BST (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I330.1
+ BG3301
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 6 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.6
+ BG3426
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position TRO403
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.1
+ BG3391
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I336.7
+ BG3367
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 4 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I6.6
+ FC0066
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0066
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I330.0
+ BG3300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator 6 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I7.4
+ FC0074
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0074
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.4
+ BG3324
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I47.1
+ SF0471
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH1 (Schnittstellensignale1) UH04-UH06
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.1
+ SF0001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LDT Anlage Ein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.4
+ BP0004
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Druckschalter 1 Druckluft OK
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.4
+ BG3374
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT IN Entladeposition MPS- (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I47.5
+ SF0475
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH2 (Schnittstellensignale1) UH04-UH06
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.0
+ BG3380
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.5
+ BG3245
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I345.5
+ BG3455
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT ist entladen MPS 1 (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.4
+ BG3384
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I330.4
+ BG3304
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator vor MPS 3 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.3
+ SF0003
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Lampentest
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I336.3
+ BG3363
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator 5 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.6
+ DI0006
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Vorsicherung 400V UC Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.0
+ BG3310
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.0
+ BG3420
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I330.3
+ BG3303
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.2
+ BG3442
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I5.1
+ SF0051
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reset UZ0409
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.1
+ BG3431
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.2
+ BG3372
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I40.0
+ SF0400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Not Halt Kanal 1 UH04
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.5
+ BG3435
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.0
+ BG3240
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I326.1
+ BG3261
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I2.6
+ SF0026
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT freigeben UZ0402, Workstation MPS 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.5
+ DI0005
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Phasenausfall 400V
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.5
+ BG3445
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.3
+ BG3243
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor 1 (ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.3
+ BG3373
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.3
+ BG3313
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4004) MPS 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.1
+ BG3381
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator Ausfahrt MPS 2 (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I1.5
+ DI0015
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Feedback Koppelrelais E-Stop-IF
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.2
+ BG3242
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ nng, in Separator (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I1.4
+ DI0014
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Feedback Koppelrelais e
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.5
+ BG3315
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4005) MPS 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I1.3
+ DI0013
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Feedback Hauptschütze aktiv
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I7.1
+ FC0071
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0071
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I40.4
+ SF0404
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Not Halt Kanal 2 UH04
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I6.1
+ FC0061
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0061
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.7
+ BG3447
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I345.1
+ BG3451
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator Ausfahrt MPS 1 (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.2
+ BG3382
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor Ausfahrt MPS 02 (AMR ILS-KR M04003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.1
+ BG3241
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position MPS 3 (AMR ILS-CV M04001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.5
+ BG3385
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT ist entladen MPS 2 (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.1
+ BG3421
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I6.4
+ FC0064
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0064
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.2
+ BG3432
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Rad dreht (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.2
+ BG3392
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, neu, MT in Position TRO418
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.0
+ BG3320
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.5
+ BG3255
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.0
+ BG3250
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I7.2
+ FC0072
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0072
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.4
+ BG3314
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Entladeposition MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.0
+ BG3370
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I47.3
+ SF0473
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt Kanal 1 UZ0409
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.3
+ BG3433
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.6
+ BG3256
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I5.3
+ SF0053
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Reset UZ0403
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.6
+ BG3376
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position MPS 2 (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.0
+ BG3440
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I337.7
+ BG3377
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I5.7
+ SF0057
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Reset UZ0401
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I0.2
+ SF0002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, LDT Start nach Störung
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I331.7
+ BG3317
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sensor Förderer voll (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I344.1
+ BG3441
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor 3 (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I338.3
+ BG3383
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, in Separator (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I7.3
+ FC0073
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0073
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.3
+ BG3253
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Abfrage Mitnehmerfinger in Position (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I2.7
+ SF0027
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT freigeben UZ0401, Workstation MPS 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I6.5
+ FC0065
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0065
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I345.4
+ BG3454
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MT in Position
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I6.3
+ FC0063
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, MSS ausgelöst FC0063
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I325.7
+ BG3257
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I5.5
+ SF0055
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Reset UZ0402
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I1.6
+ DI0016
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Sicherungsautomatenfall
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I47.2
+ SF0472
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Not Halt CH1 (Schnittstellensignale2) Reserve
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.5
+ BG3325
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT ist entladen MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I8.1
+ SF0081
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ niu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.6
+ BG3436
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.7
+ BG3397
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.7
+ BG3437
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-CV4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.6
+ BG3326
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I339.6
+ BG3396
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-CV4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I332.7
+ BG3327
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-CV4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I342.3
+ BG3423
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor nach 1Sep Brandschutztor
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I326.4
+ BG3264
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor 6 (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I343.4
+ BG3434
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU!!!! io, sensor falsch, Behangskontrolle an Separator(AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I340.0
+ BG3400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator TRO424 (AMR ILS-KR 4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I336.1
+ BG3361
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Part Sensor Beladekontrolle TRO405 auf Kreisel
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I324.7
+ BG3247
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I3.1
+ DI0031
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I3.5
+ DI0035
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IF BST 4 "No fire alarm"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I3.7
+ DI0037
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IF BST 4 "FPC opened"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I3.6
+ DI0036
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IF BST 4 "Non fault"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I3.3
+ DI0033
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IF BMZ "no fire alarm 2"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %I3.4
+ DI0034
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IF BMZ "no fire alarm 1"
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3377
+ 46
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3385
+ 52
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT ist entladen MPS 2 (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3424
+ 63
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3367
+ 38
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 4 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3260
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator 4 (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3421
+ 61
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3322
+ 32
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor Ausfahrt MPS 03 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3262
+ 17
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3455
+ 84
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT ist entladen MPS 1 (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3444
+ 77
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT IN Entladeposition MPS- (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3443
+ 76
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3363
+ 37
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator 5 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3454
+ 83
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 1 (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3394
+ 59
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3376
+ 45
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 2 (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3244
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3445
+ 78
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3447
+ 80
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3316
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 3 (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3303
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3393
+ 58
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3391
+ 56
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3372
+ 41
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3392
+ 57
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3246
+ 6
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor vor Vario Förderer (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3373
+ 42
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3300
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator 6 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3313
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4004) MPS 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3360
+ 35
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3243
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 1 (ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3251
+ 9
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 1 (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3431
+ 68
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3371
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 3 (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3384
+ 51
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 2 (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3427
+ 66
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3451
+ 82
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator Ausfahrt MPS 1 (AMR ILS-CV M4009)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3315
+ 27
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4005) MPS 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3362
+ 36
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 5 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3320
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3440
+ 73
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3441
+ 74
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 3 (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3387
+ 54
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 3 (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3256
+ 13
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3426
+ 65
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3241
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 3 (AMR ILS-CV M04001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3240
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3317
+ 29
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3430
+ 67
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator vor MPS 1 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3304
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator vor MPS 3 (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3435
+ 72
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3381
+ 48
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator Ausfahrt MPS 2 (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3446
+ 79
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 1 (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3261
+ 16
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (AMR ILS-CV M4000)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3324
+ 33
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3432
+ 69
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Rad dreht (AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3420
+ 60
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3433
+ 70
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3325
+ 34
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT ist entladen MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3312
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3383
+ 50
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3375
+ 44
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4007) MPS 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3442
+ 75
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (AMR ILS-CV M4008)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3314
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Entladeposition MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3386
+ 53
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3321
+ 31
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator Ausfahrt MPS 3 (AMR ILS-CV M4005)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3257
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3250
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3425
+ 64
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3370
+ 39
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4006)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3255
+ 12
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT in Position (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3382
+ 49
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor Ausfahrt MPS 02 (AMR ILS-KR M04003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3245
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3253
+ 11
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Abfrage Mitnehmerfinger in Position (ILS-CV M4011)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3242
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3310
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3374
+ 43
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ MT IN Entladeposition MPS- (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3301
+ 19
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor 6 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3380
+ 47
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-CV M4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3450
+ 81
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor Ausfahrt MPS 01 (AMR ILS-KR M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3311
+ 23
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor (AMR ILS-CV M4004)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3390
+ 55
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Sensor Förderer voll (AMR ILS-CV M4002)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3326
+ 85
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3437
+ 90
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3397
+ 88
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3327
+ 86
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3396
+ 87
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3436
+ 89
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3423
+ 62
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor nach 1Sep Brandschutztor
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3264
+ 91
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ io, Stausensor 6 (AMR ILS-CV M4010)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoSensors
+ 93
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Anzahl Sensoren
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3434
+ 71
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU!!!! io, sensor falsch, Behangskontrolle an Separator(AMR KR-M4003)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3361
+ 92
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Part Sensor Beladekontrolle TRO405 auf Kreisel
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3400
+ 93
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator TRO424 (AMR ILS-KR 4007)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cInBG3247
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ in Separator vor BST (ILS-CV M4001)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/FortnaCommunication/DecisionPoints.xml b/=A01+UH04-KF00/PLC-Variablen/FortnaCommunication/DecisionPoints.xml
new file mode 100644
index 0000000..5d35499
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/FortnaCommunication/DecisionPoints.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+ DecisionPoints
+
+
+
+
+ String
+ cDP_DOCK_01
+ 'GOH.Dock.01'
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ladeschleife 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ String
+ cDP_REC_02
+ 'GOH.Rec.02'
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ String
+ cDP_DOCK_02
+ 'GOH.Dock.02'
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ladeschleife 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ String
+ cDP_REC_01
+ 'GOH.Rec.01'
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Längenmessung bzw. Entscheidungspunkt nach der Längenmessung
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/FortnaCommunication/PLCIDs.xml b/=A01+UH04-KF00/PLC-Variablen/FortnaCommunication/PLCIDs.xml
new file mode 100644
index 0000000..7e87a5b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/FortnaCommunication/PLCIDs.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ PLCIDs
+
+
+
+
+ String
+ cPLCID
+ 'GOHPLC04'
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/GlobVarLib_Communications.xml b/=A01+UH04-KF00/PLC-Variablen/GlobVarLib_Communications.xml
new file mode 100644
index 0000000..95e2dac
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/GlobVarLib_Communications.xml
@@ -0,0 +1,197 @@
+
+
+
+
+
+ GlobVarLib_Communications
+
+
+
+
+ DInt
+ TELEGRAM_RECV_LIST_MAX
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ The number of telegrams that can be stored before the oldest will be overwritten.
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ TELEGRAM_DATA_FIELD_MAX
+ 254
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ The maximum size of one data field string. (254 is the limit for String in TIA-Portal)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ TELEGRAM_MARKER_MAX
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ The maximum length of a telegram start or end marker.
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ TELEGRAM_DATA_MAX
+ 64
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ The maximum number of data fields in a telegram.
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cWs
+ 500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Für WString SENDEN
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ TELEGRAM_SEND_DATA_MAX
+ 16
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ The maximum number of data fields in a telegram that has to be send
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/ILSLib/C_ILS_STRO_Sep.xml b/=A01+UH04-KF00/PLC-Variablen/ILSLib/C_ILS_STRO_Sep.xml
new file mode 100644
index 0000000..23fcebe
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/ILSLib/C_ILS_STRO_Sep.xml
@@ -0,0 +1,569 @@
+
+
+
+
+
+ C_ILS_STRO_Sep
+
+
+
+
+ USInt
+ SepState_CloseFirst(1)
+ 35
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForBt
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OffEStop(1)
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OffMainState(1)
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_Finish(1)
+ 65
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForReqSecond(1)
+ 45
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenSecond(1)
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForSecondLeg(1)
+ 27
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForLeaveFirst(1)
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cStateText(1)
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Länge des Strings um State-Info anzuzeigen
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForConfirmSen(1)
+ 37
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenSecondCorrection(1)
+ 55
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForLeaveSecond(1)
+ 60
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForCarousel(1)
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_Init(1)
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForReq
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenAndRelease(1)
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_Open
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/IO Device Variablen/RECEIVE/IO_Device_FROM_UH01.xml b/=A01+UH04-KF00/PLC-Variablen/IO Device Variablen/RECEIVE/IO_Device_FROM_UH01.xml
new file mode 100644
index 0000000..38edcce
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/IO Device Variablen/RECEIVE/IO_Device_FROM_UH01.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+ IO_Device_FROM_UH01
+
+
+
+
+ "IO_Device_UH01_Data"
+ %I31500.0
+ IO_Device_UH01_FROM_UH01
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ "IO_Device_UH02_Data"
+ %I31600.0
+ IO_Device_UH02_FROM_UH01
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ "IO_Device_UH03_Data"
+ %I31700.0
+ IO_Device_UH03_FROM_UH01
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ "IO_Device_UH04_Data"
+ %I31800.0
+ IO_Device_UH04_FROM_UH01
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ "IO_Device_UH05_Data"
+ %I31900.0
+ IO_Device_UH05_FROM_UH01
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/IO Device Variablen/SEND/IO_Device_TO_UH01.xml b/=A01+UH04-KF00/PLC-Variablen/IO Device Variablen/SEND/IO_Device_TO_UH01.xml
new file mode 100644
index 0000000..7564909
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/IO Device Variablen/SEND/IO_Device_TO_UH01.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ IO_Device_TO_UH01
+
+
+
+
+ "IO_Device_UH04_Data"
+ %Q30300.0
+ IO_Device_UH04_TO_UH01
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_AMR.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_AMR.xml
new file mode 100644
index 0000000..ef35452
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_AMR.xml
@@ -0,0 +1,197 @@
+
+
+
+
+
+ Destinations_AMR
+
+
+
+
+ Int
+ cDestStayAmr
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Im AMR bleiben (Auf Kreisel)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestLeaveAmr
+ 999
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ AMR verlassen
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestMps3
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Multi-Purpose-Station 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestMps2
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Multi-Purpose-Station 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestMps1
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Multi-Purpose-Station 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestRecirc
+ 4711
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Rotieren
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_Lager.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_Lager.xml
new file mode 100644
index 0000000..61a771b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_Lager.xml
@@ -0,0 +1,6955 @@
+
+
+
+
+
+ Destinations_Lager
+
+
+
+
+ Int
+ cDest11314
+ 11314
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12100
+ 12100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11203
+ 11203
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13321
+ 13321
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 21
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12312
+ 12312
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12409
+ 12409
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11410
+ 11410
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13307
+ 13307
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13114
+ 13114
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11315
+ 11315
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11309
+ 11309
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13110
+ 13110
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12208
+ 12208
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12319
+ 12319
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12202
+ 12202
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12204
+ 12204
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12405
+ 12405
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12309
+ 12309
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11101
+ 11101
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11310
+ 11310
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12200
+ 12200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11112
+ 11112
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13112
+ 13112
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12201
+ 12201
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11308
+ 11308
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13101
+ 13101
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13304
+ 13304
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13306
+ 13306
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13407
+ 13407
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12108
+ 12108
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12318
+ 12318
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12315
+ 12315
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11108
+ 11108
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13210
+ 13210
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12113
+ 12113
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12105
+ 12105
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12306
+ 12306
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12301
+ 12301
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12206
+ 12206
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11401
+ 11401
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12215
+ 12215
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13212
+ 13212
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11212
+ 11212
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11208
+ 11208
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12400
+ 12400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13118
+ 13118
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11114
+ 11114
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12110
+ 12110
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12401
+ 12401
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12210
+ 12210
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11206
+ 11206
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12101
+ 12101
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11412
+ 11412
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12109
+ 12109
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13309
+ 13309
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13319
+ 13319
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12404
+ 12404
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11117
+ 11117
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13300
+ 13300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11106
+ 11106
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11213
+ 11213
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11209
+ 11209
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11408
+ 11408
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12116
+ 12116
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13316
+ 13316
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11204
+ 11204
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13111
+ 13111
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11400
+ 11400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13318
+ 13318
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12115
+ 12115
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12311
+ 12311
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12307
+ 12307
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13107
+ 13107
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11316
+ 11316
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11302
+ 11302
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11300
+ 11300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12211
+ 12211
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12305
+ 12305
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12209
+ 12209
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11107
+ 11107
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12203
+ 12203
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11402
+ 11401
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13408
+ 13408
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12308
+ 12308
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11211
+ 11211
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11407
+ 11407
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11200
+ 11200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13301
+ 13301
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11303
+ 11303
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12118
+ 12118
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13406
+ 13406
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13104
+ 13104
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12402
+ 12402
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13315
+ 13315
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11403
+ 11403
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12310
+ 12310
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13213
+ 13213
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13113
+ 13113
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13313
+ 13313
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13413
+ 13413
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12213
+ 12213
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13414
+ 13414
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11301
+ 11301
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12321
+ 12321
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 21
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13401
+ 13401
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13303
+ 13303
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13320
+ 13320
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 20
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11100
+ 11100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13409
+ 13409
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11103
+ 11103
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13200
+ 13200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13302
+ 13302
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13412
+ 13412
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12412
+ 12412
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12410
+ 12410
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13402
+ 13402
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11119
+ 11119
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12403
+ 12403
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12408
+ 12408
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11214
+ 11214
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12406
+ 12406
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13317
+ 13317
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11319
+ 11319
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11313
+ 11313
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13103
+ 13103
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13405
+ 13405
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13106
+ 13106
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12107
+ 12107
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12112
+ 12112
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13209
+ 13209
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12320
+ 12320
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 20
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13217
+ 13217
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13205
+ 13205
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13215
+ 13215
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13308
+ 13308
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11115
+ 11115
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12104
+ 12104
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13403
+ 13403
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11318
+ 11318
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13305
+ 13305
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12117
+ 12117
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13203
+ 13203
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12407
+ 12407
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13108
+ 13108
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11320
+ 11320
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 20
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11312
+ 11312
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12300
+ 12300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11304
+ 11304
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13311
+ 13311
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13105
+ 13105
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12217
+ 12217
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12102
+ 12102
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11321
+ 11321
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 21
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11110
+ 11110
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13310
+ 13310
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12214
+ 12214
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13410
+ 13410
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13400
+ 13400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12302
+ 12302
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11210
+ 11210
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 10
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13207
+ 13207
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11205
+ 11205
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13314
+ 13314
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12207
+ 12207
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11307
+ 11307
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11215
+ 11215
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11105
+ 11105
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13115
+ 13115
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13404
+ 13404
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11317
+ 11317
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12303
+ 12303
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12114
+ 12114
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11311
+ 11311
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11406
+ 11406
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12413
+ 12413
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11109
+ 11109
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13202
+ 13202
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12304
+ 12304
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12313
+ 12313
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11118
+ 11118
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12316
+ 12316
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13214
+ 13214
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12216
+ 12216
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13117
+ 13117
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11201
+ 11201
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13109
+ 13109
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11104
+ 11104
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11207
+ 11207
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11405
+ 11405
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12111
+ 12111
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11413
+ 11413
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12106
+ 12106
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11116
+ 11116
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11404
+ 11404
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13201
+ 13201
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13119
+ 13119
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11411
+ 11411
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13411
+ 13411
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11306
+ 11306
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11305
+ 11305
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 113, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11216
+ 11216
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12212
+ 12212
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13100
+ 13100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, allgemein
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13312
+ 13312
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 133, Linie 12
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11111
+ 11111
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11102
+ 11102
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13211
+ 13211
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11202
+ 11202
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13102
+ 13102
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13415
+ 13415
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 134, Linie 15
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11409
+ 11409
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 114, Linie 9
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12119
+ 12119
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12317
+ 12317
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11113
+ 11113
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 111, Linie 13
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest11217
+ 11217
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 112, Linie 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12314
+ 12314
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 123, Linie 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13208
+ 13208
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 8
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13206
+ 13206
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13216
+ 13216
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12205
+ 12205
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 122, Linie 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12411
+ 12411
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 124, Linie 11
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13204
+ 13204
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 132, Linie 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest12103
+ 12103
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 121, Linie 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDest13116
+ 13116
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Section 131, Linie 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_Level2.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_Level2.xml
new file mode 100644
index 0000000..efa32d2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Destinations_Level2.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+ Destinations_Level2
+
+
+
+
+ Int
+ cDestLvl1B3
+ 300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Level 1 über Block 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestLvl1B2
+ 200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Level 1 über Block 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestLvl1B1
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Level 1 über Block 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cDestNONE
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Kein Ziel
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cDestExit
+ 30000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Ziel ist Ausgang über Level 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Encoder.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Encoder.xml
new file mode 100644
index 0000000..b589dc9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Encoder.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ Encoder
+
+
+
+
+ DInt
+ cEncoderScaling
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Scalierung des Encoders pro Teilung
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Jamgrenzen.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Jamgrenzen.xml
new file mode 100644
index 0000000..7bce31b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Jamgrenzen.xml
@@ -0,0 +1,910 @@
+
+
+
+
+
+ Jamgrenzen
+
+
+
+
+ Int
+ cJam4010_2
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_2
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4010_1
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_6
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ real
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4404_1
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4000_1
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ cJamGlobalLocations
+ 28000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cHyperJam
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_7
+ 50
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ war 30, Kapazitätstest
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4011_2
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_3
+ 12
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ real
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4004_2
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4006_2
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4008_2
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_1
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Schleuse
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_8
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4005_1
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ test
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_4
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4007_1
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4003_5
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4009_1
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4002_1
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4008_1
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4011_1
+ 60
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4001_2
+ 130
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4004_1
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4001_1
+ 130
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4002_2
+ 50
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cJam4006_1
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/MainTros_1.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/MainTros_1.xml
new file mode 100644
index 0000000..e0a1446
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/MainTros_1.xml
@@ -0,0 +1,755 @@
+
+
+
+
+
+ MainTros_1
+
+
+
+
+ UInt
+ cMainTro416
+ 17
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro400
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro419
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro412
+ 13
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro414
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro410
+ 11
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro402
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro407
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro404
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro401
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro409
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro406
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro415
+ 16
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro413
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro420
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro403
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro418
+ 19
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro405
+ 6
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro417
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro422
+ 23
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro423
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro421
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cNoMainTros
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cMainTro424
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Motors.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Motors.xml
new file mode 100644
index 0000000..c43239b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Motors.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+ Motors
+
+
+
+
+ Int
+ cCarousel4101
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cCarouselEntr2
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoCarousels
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cExitConv0101
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoVarioConv
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Separator_2.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Separator_2.xml
new file mode 100644
index 0000000..254f7ed
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Separator_2.xml
@@ -0,0 +1,569 @@
+
+
+
+
+
+ Separator_2
+
+
+
+
+ USInt
+ SepState_WaitForLeaveFirst
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForLeaveSecond
+ 60
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForReqFirst
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenAndRelease
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForCarousel
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_Init
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cStateText
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Länge des Strings um State-Info anzuzeigen
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForConfirmSen
+ 37
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenFirst
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForSecondLeg
+ 27
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OffMainState
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_Finish
+ 65
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForReqSecond
+ 45
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_CloseFirst
+ 35
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OffEStop
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenSecondCorrection
+ 55
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_WaitForFirstLeg
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SepState_OpenSecond
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Storage.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Storage.xml
new file mode 100644
index 0000000..516695f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Storage.xml
@@ -0,0 +1,476 @@
+
+
+
+
+
+ Storage
+
+
+
+
+ UInt
+ cStorage008ExitJam2
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cNoLines
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage008ExitJam4
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage008ExitJam3
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cNoLines1.1.2
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ war 17
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cNoPositions
+ 107
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cNoLines1.1.1
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ war 19
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage002ExitJam2
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage008ExitJam5
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage002ExitJam4
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ cNoPositionsBlock1
+ 107
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ war 103
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage008ExitJam1
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage002ExitJam1
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage002ExitJam3
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UInt
+ cStorage002ExitJam5
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Platz in Jam nach Lagerlinie
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Switch_1.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Switch_1.xml
new file mode 100644
index 0000000..c0c97a9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Switch_1.xml
@@ -0,0 +1,290 @@
+
+
+
+
+
+ Switch_1
+
+
+
+
+ USInt
+ SwiState_WaitForReq
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_Init
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_OffEStop
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_OffMainState
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_WaitForCarousel
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_NotConfirmed
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_ChangeSwitch
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_Error
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ SwiState_Confirmed
+ 35
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/Zeiten.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Zeiten.xml
new file mode 100644
index 0000000..5f1490a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/Zeiten.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+ Zeiten
+
+
+
+
+ Time
+ cTimeEnergySafe
+ T#40s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Laufzeit der Motoren
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ cTimeSenSlideDbncd
+ T#200ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Extra Entprellzeit für die Gefälle
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ cTimeSep1Prio
+ T#7s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Zeit wie lange Sep1 am Gefälle entleeren darf(war mal bei 12-20s)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ cTimeSepTrailing
+ T#500ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Zeit wie lange Sep offen
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ cTimeSenQuickDbncd
+ T#80ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Extra Entprellzeit schnell (Fingertakt...)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Konstanten/stConveyorStations.xml b/=A01+UH04-KF00/PLC-Variablen/Konstanten/stConveyorStations.xml
new file mode 100644
index 0000000..9756fc3
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Konstanten/stConveyorStations.xml
@@ -0,0 +1,1127 @@
+
+
+
+
+
+ stConveyorStations
+
+
+
+
+ Int
+ cConvStationsTro47
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvPocketsPin13
+ 19
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Faktor 1,5 (abgerundet)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvPocketsPin19
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Faktor 1,5 (abgerundet)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvPocketsPin17
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Faktor 1,5 (abgerundet)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro47
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 20
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro49
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxPin21
+ 32
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro15
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 20
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro52
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro36
+ 32
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 22
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro31
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro22
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro38
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro22
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 14
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro36
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvPocketsPin21
+ 31
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Faktor 1,5 (abgerundet)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro54
+ 16
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxPin19
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro17
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro52
+ 32
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 22
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro17
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvTrolleysTro
+ 31
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Faktor 1,5 (abgerundet)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro
+ 32
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 32 (war 22)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro49
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro31
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 20
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro33
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 18
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro20
+ 32
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 22
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvPocketsPin15
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Faktor 1,5 (abgerundet)
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxPin17
+ 28
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTro54
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 16
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro20
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro33
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxPin13
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxPin15
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro38
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cConvStationsTro15
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/LCom_Constants.xml b/=A01+UH04-KF00/PLC-Variablen/LCom_Constants.xml
new file mode 100644
index 0000000..ec8491d
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/LCom_Constants.xml
@@ -0,0 +1,1468 @@
+
+
+
+
+
+ LCom_Constants
+
+
+
+
+ USInt
+ LCOM_TCP_CONNECTION
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_RECEIVE
+ 16#8603
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_LIFE_SIGN_CYCLE
+ 16#8210
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_CLOSE_CONNECTION
+ 16#8604
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_SEND_CYCLE_TIME
+ 16#8211
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_CLIENT_TRY_CONNECT
+ 16#7003
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_PARTNER_IP
+ 16#8204
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_SEND_DATA_TYPE
+ 16#8208
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_ACK_TIMEOUT_EXPIRED
+ 16#8611
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ LCOM_TIME_OF_DAY_TIME_SYNC
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_RECEIVE_BUFFER_LEN
+ 16#7614
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_LIFE_SIGN_EXPIRED
+ 16#8610
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_LOCAL_PORT
+ 16#8203
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_TIME_CYCLE_TIME
+ 16#8206
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ LCOM_LCOM_CONNECTION
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_OPEN_CLIENT
+ 16#8600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_ACK_TIMEOUT_LIMITATION
+ 16#7612
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_TIME_OF_DAY
+ 16#8207
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_TIME_SYNC_MODE
+ 16#8205
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_ACK_TIMEOUT
+ 16#8212
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_INTERFACE_ID
+ 16#8202
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_FIRST_CALL
+ 16#7001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ LCOM_CON_TYPE_IPV4
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_DISCONNECTING
+ 16#7008
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ LCOM_CON_TYPE_QDN
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_WRONG_LCOM_HEADER
+ 16#8613
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_SEND_CYCLE_LIMITATION
+ 16#7611
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_OPEN_SERVER
+ 16#8601
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_TCP_CONNECTED
+ 16#7005
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_WRONG_TELEGRAM_ID
+ 16#8614
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_SEND
+ 16#8602
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_SEND_CYCLE_EXPIRED
+ 16#7613
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_COM_SERVICE
+ 16#8200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_LCOM_CONNECTED_V1
+ 16#7006
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ LCOM_NO_TIME_SYNC
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_RECEIVE_DATA_TYPE
+ 16#8209
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_LCOM_CONNECTED_V2
+ 16#7007
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_SEND_DATA_LENGTH
+ 16#7600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_NO_TIME_SYNC
+ 16#7615
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_ACK_MESSAGE_NUMBER
+ 16#8612
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_NO_CALL
+ 16#7000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_SERVER_PORT_OPEN
+ 16#7004
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_WARN_LIFE_SIGN_LIMITATION
+ 16#7610
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_CONNECTION_TYPE
+ 16#8213
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_STATUS_INTERMEDIATE_CALL
+ 16#7002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ LCOM_CYCLE_TIME_SYNC
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Word
+ LCOM_ERR_CONNECTION_ID
+ 16#8201
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Hilfs/MoSchu_Konstanten.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Hilfs/MoSchu_Konstanten.xml
new file mode 100644
index 0000000..f8cfc4b
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Hilfs/MoSchu_Konstanten.xml
@@ -0,0 +1,848 @@
+
+
+
+
+
+ MoSchu_Konstanten
+
+
+
+
+ Int
+ MS_E3Ausgang
+ 23
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_E2Ausgang
+ 17
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie7
+ 12
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie11
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_KR343536
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie1
+ 6
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Aufgabe
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie10
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie9
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie14
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie5
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie8
+ 13
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_LagerKR16171819
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_E3Eingang
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Meister
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie13
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_E2Eingang
+ 16
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_RundKR123
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie6
+ 11
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie3
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Naeherei
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_ETFhoch
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie4
+ 9
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Haengend
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_ETFrunter
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie2
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ MS_Linie12
+ 19
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep.xml
new file mode 100644
index 0000000..4dd3dcb
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep.xml
@@ -0,0 +1,1127 @@
+
+
+
+
+
+ 1Sep
+
+
+
+
+ Bool
+ %M2.7
+ Tag_2001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M4.0
+ Tag_4001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.5
+ Tag_3002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M4.2
+ Tag_4003
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.5
+ Tag_20001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.1
+ Tag_2003
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.1
+ Tag_378
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.4
+ Tag_2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.3
+ Tag_3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.6
+ Tag_20002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.0
+ Tag_377
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.4
+ Tag_3001
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.7
+ Tag_4000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.2
+ Tag_379
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M4.1
+ Tag_4002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M2.3
+ Tag_380
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.6
+ Tag_3003
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.0
+ Tag_2002
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M3.2
+ Tag_2004
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_WaitForConfirm
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_ErrorReq
+ 13000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1SeStep_LeaveSep
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep1Switch.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep1Switch.xml
new file mode 100644
index 0000000..543dae2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep1Switch.xml
@@ -0,0 +1,631 @@
+
+
+
+
+
+ 1Sep1Switch
+
+
+
+
+ Int
+ 1Se1SwStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_ErrorBtInSwi
+ 15000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_ErrorSwi
+ 12000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_LeaveConfirmed
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckSwi
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_LeaveUnconfirmed
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_FirstBtTrans
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se1SwStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep2Switch.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep2Switch.xml
new file mode 100644
index 0000000..25088a1
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep2Switch.xml
@@ -0,0 +1,538 @@
+
+
+
+
+
+ 1Sep2Switch
+
+
+
+
+ Int
+ 1Se2SwStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_ErrorReq
+ 13000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_LeaveSep
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_WaitForConfirm
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se2SwStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep3Switch.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep3Switch.xml
new file mode 100644
index 0000000..0d625d2
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/1Sep3Switch.xml
@@ -0,0 +1,631 @@
+
+
+
+
+
+ 1Sep3Switch
+
+
+
+
+ Int
+ 1Se3SwStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_FirstBtTrans
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_ErrorSwi
+ 12000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_CheckSwi
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_LeaveUnconfirmed
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_LeaveConfirmed
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_ErrorBtInSwi
+ 15000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Se3SwStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/2Sep1Switch.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/2Sep1Switch.xml
new file mode 100644
index 0000000..652705c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/2Sep1Switch.xml
@@ -0,0 +1,631 @@
+
+
+
+
+
+ 2Sep1Switch
+
+
+
+
+ Int
+ 2Se1SwStep_ErrorSwi
+ 12000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_ErrorBtInSwi
+ 15000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_FirstBtTrans
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckSwi
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_LeaveConfirmed
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_LeaveUnconfirmed
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1SwStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/2Sep2Switch.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/2Sep2Switch.xml
new file mode 100644
index 0000000..0083a28
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/2Sep2Switch.xml
@@ -0,0 +1,631 @@
+
+
+
+
+
+ 2Sep2Switch
+
+
+
+
+ Int
+ 2Se2SwStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_LeaveConfirmed
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_ErrorSwi
+ 12000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_FirstBtTrans
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_LeaveUnconfirmed
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckSwi
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_ErrorBtInSwi
+ 15000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se2SwStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/3Sep1Switch.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/3Sep1Switch.xml
new file mode 100644
index 0000000..12abf20
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/3Sep1Switch.xml
@@ -0,0 +1,631 @@
+
+
+
+
+
+ 3Sep1Switch
+
+
+
+
+ Int
+ 3Se1SwStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_ErrorSep
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_ErrorSwi
+ 12000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_LeaveConfirmed
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_ErrorBtInSwi
+ 15000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_CheckSwi
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_FirstBtTrans
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_LeaveUnconfirmed
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 3Se1SwStep_ErrorMisc
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/Carousel.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/Carousel.xml
new file mode 100644
index 0000000..d16e01c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/Carousel.xml
@@ -0,0 +1,352 @@
+
+
+
+
+
+ Carousel
+
+
+
+
+ SInt
+ CarS_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 0
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_StartUp
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 3
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_EmergencyStopping
+ 35
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 7
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_ErrorEStop
+ -30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ neu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_ErrorMisc
+ -20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ neu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_WartForStartCar
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 2
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_ErrorChain
+ -10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals -1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_Stopping
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 6
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_Run
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 4
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_WaitForReq
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 1
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ SInt
+ CarS_ShutOffDelay
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ damals 5
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/CarouselNeu.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/CarouselNeu.xml
new file mode 100644
index 0000000..571476a
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/CarouselNeu.xml
@@ -0,0 +1,290 @@
+
+
+
+
+
+ CarouselNeu
+
+
+
+
+ Int
+ CarStep_Stopping
+ 600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_Idle
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_WaitForAck
+ 200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_Run
+ 400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_StopDelay
+ 500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_ReRun
+ 350
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_Starting
+ 300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ CarStep_EStopping
+ 700
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/ConveyorVario.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/ConveyorVario.xml
new file mode 100644
index 0000000..7850b82
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/ConveyorVario.xml
@@ -0,0 +1,507 @@
+
+
+
+
+
+ ConveyorVario
+
+
+
+
+ Int
+ VarioStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_LeaveSep
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_VarioMove
+ 2575
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_WaitForConfirm
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_Emptying
+ 1500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_CheckFingerRdy
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_CheckVario
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_WaitForMfr
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ VarioStep_CheckMotor
+ 2150
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ NIU
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO ReasonForStop.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO ReasonForStop.xml
new file mode 100644
index 0000000..2cd22d9
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO ReasonForStop.xml
@@ -0,0 +1,507 @@
+
+
+
+
+
+ MainTRO ReasonForStop
+
+
+
+
+ USInt
+ Rsn_JamNextError
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_WrongDirection
+ 30
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_Nothing
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_SubError
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_MfrMistake
+ 50
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_LbtmError
+ 70
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_InitBtLost
+ 35
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_BtEmpty
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_MfrCancel
+ 45
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_MfrPausedTro
+ 55
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_LongSignalDetected
+ 65
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_CarouselError
+ 60
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_NullBt
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_LbtmNotRdy
+ 75
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_AllBtOut
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ USInt
+ Rsn_GeneralError
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/1Sep1Forky_1.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/1Sep1Forky_1.xml
new file mode 100644
index 0000000..c30479c
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/1Sep1Forky_1.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+ 1Sep1Forky_1
+
+
+
+
+ Int
+ 1Sep1ForkyStep_ErrorJamDropOff
+ -1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1ForkyStep_Error3
+ -3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1ForkyStep_Testmode
+ 10000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1ForkyStep_Error4
+ -4000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1ForkyStep_Error2
+ -2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/1Sep1HangCat.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/1Sep1HangCat.xml
new file mode 100644
index 0000000..1e9d287
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/1Sep1HangCat.xml
@@ -0,0 +1,414 @@
+
+
+
+
+
+ 1Sep1HangCat
+
+
+
+
+ Int
+ 1Sep1HangCatStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_ChainFw
+ 300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_Init
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_ChainStopped
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_PrepNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_WaitForMFR
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_CheckHangCat
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_TestMode
+ 10000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 1Sep1HangCatStep_WaitForRasterSensor
+ 400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/2Sep1Switch1Forky.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/2Sep1Switch1Forky.xml
new file mode 100644
index 0000000..7cd6d92
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/MainTRO/2Sep1Switch1Forky.xml
@@ -0,0 +1,631 @@
+
+
+
+
+
+ 2Sep1Switch1Forky
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_ReqFinished
+ 3000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_PrepForky
+ 2450
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_WaitForConfirm
+ 2700
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckReqFinished
+ 2900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckSep
+ 2200
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_Undefined
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_LeaveUnconfirmed
+ 2500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_PrepareNewReq
+ 1900
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckJam
+ 2100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckAgain
+ 2400
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_WaitForMFR
+ 1000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_Off
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_WaitForForkyFinish
+ 2850
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_WaitForBt
+ 2800
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_FirstBtTrans
+ 2550
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckSwi
+ 2300
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckCorrectBt
+ 2000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_RemainBtLeave
+ 2950
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_LeaveConfirmed
+ 2600
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ 2Se1Sw1FoStep_CheckForky
+ 2350
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/SubTRO/ForkyDrop_1.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/SubTRO/ForkyDrop_1.xml
new file mode 100644
index 0000000..51395bd
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/SubTRO/ForkyDrop_1.xml
@@ -0,0 +1,259 @@
+
+
+
+
+
+ ForkyDrop_1
+
+
+
+
+ Int
+ ForkyStep_TestSlider
+ 20000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stopperposition --> Slider auf / zu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestIdle
+ 10000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Warten...
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestForkDown
+ 13000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Kompletter Ablauf
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestForkUp
+ 12000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Kompletter Ablauf
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestStopperCloseAlt
+ 15000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stopperposition Sensor --> Stopper auf / zu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestStopperOpen
+ 14000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Kompletter Ablauf
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestForkDownAlt
+ 16000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Stausensor --> Gabel hoch / runter
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ ForkyStep_TestStopperClose
+ 11000
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Kompletter Ablauf
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/SubTRO/HangerCatcher_1.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/SubTRO/HangerCatcher_1.xml
new file mode 100644
index 0000000..f093fd1
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Schrittketten/SubTRO/HangerCatcher_1.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+ HangerCatcher_1
+
+
+
+
+ Int
+ HangCatStatus_CatcherIsTurnedToBt
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ HangCatStatus_CatcherTurningToLm
+ 6
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ HangCatStatus_CatcherTurningToBt
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ HangCatStatus_CatcherIsTurnedToLm
+ 9
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Simu/Simu.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Simu/Simu.xml
new file mode 100644
index 0000000..f137645
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/Konstanten Simu/Simu.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Simu
+
+
+
+
+ UDInt
+ cTelegramLengthSend
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ UDInt
+ cTelegramLengthReceive
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Mewa/ZeitenMEWA.xml b/=A01+UH04-KF00/PLC-Variablen/Mewa/ZeitenMEWA.xml
new file mode 100644
index 0000000..708e6b7
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Mewa/ZeitenMEWA.xml
@@ -0,0 +1,476 @@
+
+
+
+
+
+ ZeitenMEWA
+
+
+
+
+ Time
+ TimeForSepWaiting_Long
+ T#60s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarStartUp
+ T#500ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarStopQuick
+ T#200ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForSepJam
+ T#8s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarRun_Medium
+ T#30s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 60 ursprünglich
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForSepWaiting_VeryLong
+ T#100s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarRun_Short
+ T#15s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 45 ursprünglich
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForSepWaiting_Short
+ T#15s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeLongSignalQuitMax
+ T#10s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeLongSignalQuitMin
+ T#3s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarStop
+ T#400ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForSepWaiting_Medium
+ T#30s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeSenDelay
+ T#100ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Test. Wird nicht verwendet
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarRun_VeryLong
+ T#120s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 180 ursprünglich
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Time
+ TimeForCarRun_Long
+ T#60s
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ 120 ursprünglich
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Simulation.xml b/=A01+UH04-KF00/PLC-Variablen/Simulation.xml
new file mode 100644
index 0000000..275f503
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Simulation.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ Simulation
+
+
+
+
+ Time
+ tSimuSenTime
+ T#200ms
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Standard-Variablentabelle.xml b/=A01+UH04-KF00/PLC-Variablen/Standard-Variablentabelle.xml
new file mode 100644
index 0000000..6e3a26f
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Standard-Variablentabelle.xml
@@ -0,0 +1,724 @@
+
+
+
+
+
+ Standard-Variablentabelle
+
+
+
+
+ Bool
+ %M0.2
+ Clock_2.5Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %MB0
+ Clock_Byte
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.7
+ Clock_0.5Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.3
+ Clock_2Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.4
+ Clock_1.25Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.6
+ Clock_0.625Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M1.1
+ DiagStatusUpdate
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.0
+ Clock_10Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Byte
+ %MB1
+ System_Byte
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.5
+ Clock_1Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M0.1
+ Clock_5Hz
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M1.0
+ FirstScan
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M1.3
+ AlwaysFALSE
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ %M1.2
+ AlwaysTRUE
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ cStationsMax
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Max. Anzahl Stations(Abwürfe) je Sorter
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ cTodoTRUE
+ TRUE
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ cHooksSorterMaxPin
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Max. Anzahl Haken / Taschen(Online) je Sorter
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Bool
+ cTodoFalse
+ FALSE
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoLinesTest
+ 19
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStationsMaxTest
+ 29
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoTime
+ 100
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoTempDataLog
+ 40
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ DInt
+ cEncoderMaxPin
+ 13500
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ EncoderMax Dint ?
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/PLC-Variablen/Statistics/Statistics.xml b/=A01+UH04-KF00/PLC-Variablen/Statistics/Statistics.xml
new file mode 100644
index 0000000..d026808
--- /dev/null
+++ b/=A01+UH04-KF00/PLC-Variablen/Statistics/Statistics.xml
@@ -0,0 +1,910 @@
+
+
+
+
+
+ Statistics
+
+
+
+
+ Int
+ cStatistikJam4003_6
+ 12
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4005_1
+ 17
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4006_2
+ 19
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cNoStatistikJam
+ 27
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4004_2
+ 16
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4001_2
+ 4
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4002_1
+ 5
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4011_1
+ 26
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4007_1
+ 20
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4008_1
+ 21
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_5
+ 11
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_7
+ 13
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_3
+ 9
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_8
+ 14
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4006_1
+ 18
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4000_1
+ 1
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_1
+ 7
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4010_2
+ 25
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4011_2
+ 27
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_4
+ 10
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikHyperJam
+ 0
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4008_2
+ 22
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4000_2
+ 2
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4004_1
+ 15
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4003_2
+ 8
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4009_1
+ 23
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4002_2
+ 6
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4010_1
+ 24
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ Int
+ cStatistikJam4001_1
+ 3
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/000_Global/DB_AlarmGlobal.xml b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_AlarmGlobal.xml
new file mode 100644
index 0000000..86a0960
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_AlarmGlobal.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+ 10
+
+
+ 5
+
+
+ 15
+
+
+
+
+
+ Optimized
+ 100
+ DB_AlarmGlobal
+
+ 15
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/000_Global/DB_GLOB_TroState.xml b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_GLOB_TroState.xml
new file mode 100644
index 0000000..9034bc9
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_GLOB_TroState.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+ TRO Status merken (z.B. nach ReInit)
+
+
+
+
+ Optimized
+ 100
+ DB_GLOB_TroState
+
+ 25
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/000_Global/DB_MachineGlobal.xml b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_MachineGlobal.xml
new file mode 100644
index 0000000..0ee2a8e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_MachineGlobal.xml
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+ Eingang um Simulationslevel festzulegen. Kann verwendet werden, um Eingangssignale zu simulieren
+
+
+
+
+
+
+ Zykluszeit zum Tracen
+
+
+
+
+ Name of the Machine
+
+
+
+
+ Name of Production Line
+
+
+
+
+ Place of the Factory
+
+
+
+
+ (Cold restart scan 1 of OB 1)
+
+
+
+
+ Always FALSE
+
+ false
+
+
+
+ Always TRUE
+
+ true
+
+
+
+ Betriebsstundenzähler für Automatikbetrieb
+
+
+
+
+ Inbetriebnahme aktiv
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+ Global LogLevel
+
+
+
+
+
+ Optimized
+ 100
+ DB_MachineGlobal
+
+ 14
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/000_Global/DB_Statistics.xml b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_Statistics.xml
new file mode 100644
index 0000000..fd30da0
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/000_Global/DB_Statistics.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+ Gesamtanzahl Carrier
+
+
+
+
+ Gesamtanzahl beladene Carrier
+
+
+
+
+ Gesamtanzahl Leercarrier
+
+
+
+
+ Gesamtanzahl Dummy
+
+
+
+
+
+ Standard Jam Statistiken
+
+
+
+
+ Fortgeschrittene/Spezielle Jam Statistiken
+
+
+
+
+ Arbeitsplätze
+
+
+
+ Workstation 1.1
+
+
+
+ Tatsächliche Anzahl Carrier
+
+
+
+
+ Reserviert für Station (unterwegs)
+
+
+
+
+ Real+Reserved
+
+
+
+
+
+ Workstation 1.0
+
+
+
+ Tatsächliche Anzahl Carrier
+
+
+
+
+ Reserviert für Station (unterwegs)
+
+
+
+
+ Real+Reserved
+
+
+
+
+
+ Workstation 2.0
+
+
+
+ Tatsächliche Anzahl Carrier
+
+
+
+
+ Reserviert für Station (unterwegs)
+
+
+
+
+ Real+Reserved
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_Statistics
+
+ 6
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/050_Sensors/DB_Inputs.xml b/=A01+UH04-KF00/Programmbausteine/050_Sensors/DB_Inputs.xml
new file mode 100644
index 0000000..ba5f0ec
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/050_Sensors/DB_Inputs.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_Inputs
+
+ 17
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/050_Sensors/FB_CallSensors.scl b/=A01+UH04-KF00/Programmbausteine/050_Sensors/FB_CallSensors.scl
new file mode 100644
index 0000000..6b45333
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/050_Sensors/FB_CallSensors.scl
@@ -0,0 +1,783 @@
+FUNCTION_BLOCK "FB_CallSensors"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ stInOutControlUnitCabinet : "UDT_MainState";
+ END_VAR
+
+ VAR
+ fbSensorInput : Array[0.."cNoSensors"] of "FB_SensorInput";
+ END_VAR
+
+ VAR_TEMP
+ idx : Int;
+ tFlicker : Bool;
+ index : Int;
+ END_VAR
+
+
+BEGIN
+ REGION SensorInput-Baustein Aufrufe
+ REGION BG3240
+ #fbSensorInput["cInBG3240"](sInName := 'BG3240',
+ xInSensor := "BG3240",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3240"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3240"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3241
+ #fbSensorInput["cInBG3241"](sInName := 'BG3241',
+ xInSensor := "BG3241",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3241"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3241"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3242
+ #fbSensorInput["cInBG3242"](sInName := 'BG3242',
+ xInSensor := "BG3242",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3242"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3242"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3244
+ #fbSensorInput["cInBG3244"](sInName := 'BG3244',
+ xInSensor := "BG3244",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3244"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3244"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3245
+ #fbSensorInput["cInBG3245"](sInName := 'BG3245',
+ xInSensor := "BG3245",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3245"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3245"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3246
+ #fbSensorInput["cInBG3246"](sInName := 'BG3246',
+ xInSensor := "BG3246",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3246"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3246"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3243
+ #fbSensorInput["cInBG3243"](sInName := 'BG3243',
+ xInSensor := "BG3243",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3243"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3243"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3250
+ #fbSensorInput["cInBG3250"](sInName := 'BG3250',
+ xInSensor := "BG3250",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3250"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3250"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3251
+ #fbSensorInput["cInBG3251"](sInName := 'BG3251',
+ xInSensor := "BG3251",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3251"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3251"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3247
+ #fbSensorInput["cInBG3247"](sInName := 'BG3247',
+ xInSensor := "BG3247",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3247"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3247"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3253
+ #fbSensorInput["cInBG3253"](sInName := 'BG3253',
+ xInSensor := "BG3253",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3253"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3253"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3255
+ #fbSensorInput["cInBG3255"](sInName := 'BG3255',
+ xInSensor := "BG3255",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3255"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3255"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3256
+ #fbSensorInput["cInBG3256"](sInName := 'BG3256',
+ xInSensor := "BG3256",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3256"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3256"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3257
+ #fbSensorInput["cInBG3257"](sInName := 'BG3257',
+ xInSensor := "BG3257",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3257"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3257"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3260
+ #fbSensorInput["cInBG3260"](sInName := 'BG3260',
+ xInSensor := "BG3260",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3260"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3260"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3261
+ #fbSensorInput["cInBG3261"](sInName := 'BG3261',
+ xInSensor := "BG3261",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3261"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3261"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3262
+ #fbSensorInput["cInBG3262"](sInName := 'BG3262',
+ xInSensor := "BG3262",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3262"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3262"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3300
+ #fbSensorInput["cInBG3300"](sInName := 'BG3300',
+ xInSensor := "BG3300",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3300"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3300"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3301
+ #fbSensorInput["cInBG3301"](sInName := 'BG3301',
+ xInSensor := "BG3301",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3301"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3301"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3303
+ #fbSensorInput["cInBG3303"](sInName := 'BG3303',
+ xInSensor := "BG3303",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3303"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3303"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3304
+ #fbSensorInput["cInBG3304"](sInName := 'BG3304',
+ xInSensor := "BG3304",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3304"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3304"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3310
+ #fbSensorInput["cInBG3310"](sInName := 'BG3310',
+ xInSensor := "BG3310",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3310"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3310"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3311
+ #fbSensorInput["cInBG3311"](sInName := 'BG3311',
+ xInSensor := "BG3311",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3311"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3311"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3312
+ #fbSensorInput["cInBG3312"](sInName := 'BG3312',
+ xInSensor := "BG3312",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3312"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3312"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3313
+ #fbSensorInput["cInBG3313"](sInName := 'BG3313',
+ xInSensor := "BG3313",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3313"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3313"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3314
+ #fbSensorInput["cInBG3314"](sInName := 'BG3314',
+ xInSensor := "BG3314",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3314"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3314"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3315
+ #fbSensorInput["cInBG3315"](sInName := 'BG3315',
+ xInSensor := "BG3315",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3315"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3315"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3316
+ #fbSensorInput["cInBG3316"](sInName := 'BG3316',
+ xInSensor := "BG3316",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3316"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3316"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3317
+ #fbSensorInput["cInBG3317"](sInName := 'BG3317',
+ xInSensor := "BG3317",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3317"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3317"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3320
+ #fbSensorInput["cInBG3320"](sInName := 'BG3320',
+ xInSensor := "BG3320",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3320"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3320"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3321
+ #fbSensorInput["cInBG3321"](sInName := 'BG3321',
+ xInSensor := "BG3321",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3321"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3321"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3322
+ #fbSensorInput["cInBG3322"](sInName := 'BG3322',
+ xInSensor := "BG3322",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3322"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3322"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3325
+ #fbSensorInput["cInBG3325"](sInName := 'BG3325',
+ xInSensor := "BG3325",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3325"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3325"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3360
+ #fbSensorInput["cInBG3360"](sInName := 'BG3360',
+ xInSensor := "BG3360",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3360"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3360"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3362
+ #fbSensorInput["cInBG3362"](sInName := 'BG3362',
+ xInSensor := "BG3362",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3362"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3362"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3363
+ #fbSensorInput["cInBG3363"](sInName := 'BG3363',
+ xInSensor := "BG3363",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3363"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3363"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3367
+ #fbSensorInput["cInBG3367"](sInName := 'BG3367',
+ xInSensor := "BG3367",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3367"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3367"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3370
+ #fbSensorInput["cInBG3370"](sInName := 'BG3370',
+ xInSensor := "BG3370",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3370"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3370"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3371
+ #fbSensorInput["cInBG3371"](sInName := 'BG3371',
+ xInSensor := "BG3371",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3371"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3371"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3372
+ #fbSensorInput["cInBG3372"](sInName := 'BG3372',
+ xInSensor := "BG3372",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3372"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3372"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3373
+ #fbSensorInput["cInBG3373"](sInName := 'BG3373',
+ xInSensor := "BG3373",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3373"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3373"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3374
+ #fbSensorInput["cInBG3374"](sInName := 'BG3374',
+ xInSensor := "BG3374",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3374"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3374"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3375
+ #fbSensorInput["cInBG3375"](sInName := 'BG3375',
+ xInSensor := "BG3375",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3375"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3375"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3376
+ #fbSensorInput["cInBG3376"](sInName := 'BG3376',
+ xInSensor := "BG3376",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3376"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3376"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3377
+ #fbSensorInput["cInBG3377"](sInName := 'BG3377',
+ xInSensor := "BG3377",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3377"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3377"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3381
+ #fbSensorInput["cInBG3381"](sInName := 'BG3381',
+ xInSensor := "BG3381",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3381"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3381"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3382
+ #fbSensorInput["cInBG3382"](sInName := 'BG3382',
+ xInSensor := "BG3382",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3382"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3382"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3383
+ #fbSensorInput["cInBG3383"](sInName := 'BG3383',
+ xInSensor := "BG3383",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3383"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3383"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3385
+ #fbSensorInput["cInBG3385"](sInName := 'BG3385',
+ xInSensor := "BG3385",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3385"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3385"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+ REGION BG3386
+ #fbSensorInput["cInBG3386"](sInName := 'BG3386',
+ xInSensor := "BG3386",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3386"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3386"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3387
+ #fbSensorInput["cInBG3387"](sInName := 'BG3387',
+ xInSensor := "BG3387",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3387"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3387"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3390
+ #fbSensorInput["cInBG3390"](sInName := 'BG3390',
+ xInSensor := "BG3390",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3390"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3390"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3391
+ #fbSensorInput["cInBG3391"](sInName := 'BG3391',
+ xInSensor := "BG3391",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3391"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3391"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3393
+ #fbSensorInput["cInBG3393"](sInName := 'BG3393',
+ xInSensor := "BG3393",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3393"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3393"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3394
+ #fbSensorInput["cInBG3394"](sInName := 'BG3394',
+ xInSensor := "BG3394",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3394"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3394"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3420
+ #fbSensorInput["cInBG3420"](sInName := 'BG3420',
+ xInSensor := "BG3420",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3420"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3420"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3421
+ #fbSensorInput["cInBG3421"](sInName := 'BG3421',
+ xInSensor := "BG3421",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3421"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3421"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3423
+ #fbSensorInput["cInBG3423"](sInName := 'BG3423',
+ xInSensor := "BG3423",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3423"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3423"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3424
+ #fbSensorInput["cInBG3424"](sInName := 'BG3424',
+ xInSensor := "BG3424",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3424"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3424"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3425
+ #fbSensorInput["cInBG3425"](sInName := 'BG3425',
+ xInSensor := "BG3425",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3425"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3425"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3427
+ #fbSensorInput["cInBG3427"](sInName := 'BG3427',
+ xInSensor := "BG3427",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3427"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3427"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3430
+ #fbSensorInput["cInBG3430"](sInName := 'BG3430',
+ xInSensor := "BG3430",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3430"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3430"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3432
+ #fbSensorInput["cInBG3432"](sInName := 'BG3432',
+ xInSensor := "BG3432",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3432"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3432"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3433
+ #fbSensorInput["cInBG3433"](sInName := 'BG3433',
+ xInSensor := "BG3433",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3433"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3433"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3434
+ #fbSensorInput["cInBG3434"](sInName := 'BG3434',
+ xInSensor := "BG3434",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3434"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3434"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3435
+ #fbSensorInput["cInBG3435"](sInName := 'BG3435',
+ xInSensor := "BG3435",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3435"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3435"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3440
+ #fbSensorInput["cInBG3440"](sInName := 'BG3440',
+ xInSensor := "BG3440",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3440"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3440"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3441
+ #fbSensorInput["cInBG3441"](sInName := 'BG3441',
+ xInSensor := "BG3441",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3441"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3441"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3442
+ #fbSensorInput["cInBG3442"](sInName := 'BG3442',
+ xInSensor := "BG3442",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3442"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3442"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3443
+ #fbSensorInput["cInBG3443"](sInName := 'BG3443',
+ xInSensor := "BG3443",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3443"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3443"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3444
+ #fbSensorInput["cInBG3444"](sInName := 'BG3444',
+ xInSensor := "BG3444",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3444"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3444"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3445
+ #fbSensorInput["cInBG3445"](sInName := 'BG3445',
+ xInSensor := "BG3445",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3445"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3445"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3446
+ #fbSensorInput["cInBG3446"](sInName := 'BG3446',
+ xInSensor := "BG3446",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3446"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3446"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3447
+ #fbSensorInput["cInBG3447"](sInName := 'BG3447',
+ xInSensor := "BG3447",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3447"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3447"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3450
+ #fbSensorInput["cInBG3450"](sInName := 'BG3450',
+ xInSensor := "BG3450",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3450"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3450"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3451
+ #fbSensorInput["cInBG3451"](sInName := 'BG3451',
+ xInSensor := "BG3451",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3451"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3451"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3455
+ #fbSensorInput["cInBG3455"](sInName := 'BG3455',
+ xInSensor := "BG3455",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3455"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3455"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3380
+ #fbSensorInput["cInBG3380"](sInName := 'BG3380',
+ xInSensor := "BG3380",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3380"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3380"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3431
+ #fbSensorInput["cInBG3431"](sInName := 'BG3431',
+ xInSensor := "BG3431",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3431"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3431"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3324
+ #fbSensorInput["cInBG3324"](sInName := 'BG3324',
+ xInSensor := "BG3324",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3324"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3324"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3384
+ #fbSensorInput["cInBG3384"](sInName := 'BG3384',
+ xInSensor := "BG3384",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3384"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3384"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3454
+ #fbSensorInput["cInBG3454"](sInName := 'BG3454',
+ xInSensor := "BG3454",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3454"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3454"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3426
+ #fbSensorInput["cInBG3426"](sInName := 'BG3426',
+ xInSensor := "BG3426",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3426"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3426"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3392
+ #fbSensorInput["cInBG3392"](sInName := 'BG3392',
+ xInSensor := "BG3392",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3392"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3392"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3326
+ #fbSensorInput["cInBG3326"](sInName := 'BG3326',
+ xInSensor := "BG3326",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3326"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3326"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3327
+ #fbSensorInput["cInBG3327"](sInName := 'BG3327',
+ xInSensor := "BG3327",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3327"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3327"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3396
+ #fbSensorInput["cInBG3396"](sInName := 'BG3396',
+ xInSensor := "BG3396",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3396"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3396"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3397
+ #fbSensorInput["cInBG3397"](sInName := 'BG3397',
+ xInSensor := "BG3397",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3397"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3397"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3436
+ #fbSensorInput["cInBG3436"](sInName := 'BG3436',
+ xInSensor := "BG3436",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3436"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3436"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3437
+ #fbSensorInput["cInBG3437"](sInName := 'BG3437',
+ xInSensor := "BG3437",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3437"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3437"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3264
+ #fbSensorInput["cInBG3264"](sInName := 'BG3264',
+ xInSensor := "BG3264",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3264"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3264"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3361
+ #fbSensorInput["cInBG3361"](sInName := 'BG3361',
+ xInSensor := "BG3361",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3361"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3361"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ REGION BG3400
+ #fbSensorInput["cInBG3400"](sInName := 'BG3400',
+ xInSensor := "BG3400",
+ stInOutSensor := "DB_Inputs".Sensors["cInBG3400"],
+ stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3400"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
+ END_REGION
+
+ END_REGION
+
+ // REGION Warnungen beim Erkennen von Flackern werfen
+ // FOR #idx := 1 TO "cNoSensors" DO
+ // // Nur der erste Fehler am Tag wird gemeldet um vollschreiben der MMC zu verhindern
+ // IF #fbSensorInput[#idx].xOutFlickerError AND #fbSensorInput[#idx].nOutCntFlicker = 1 THEN
+ // #tFlicker := TRUE;
+ // EXIT;
+ // END_IF;
+ // END_FOR;
+
+ // IF #idx > "cNoSensors" OR #idx < 1 THEN
+ // #idx := 1;
+ // #tFlicker := FALSE;
+ // END_IF;
+
+ // END_REGION
+
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/050_Sensors/fbCallSensors_DB.xml b/=A01+UH04-KF00/Programmbausteine/050_Sensors/fbCallSensors_DB.xml
new file mode 100644
index 0000000..817960a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/050_Sensors/fbCallSensors_DB.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+ FB_CallSensors
+ FB
+
+
+
+
+
+
+ fbCallSensors_DB
+
+ 19
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/075_PreMain/FB_PreMain.scl b/=A01+UH04-KF00/Programmbausteine/075_PreMain/FB_PreMain.scl
new file mode 100644
index 0000000..a555e87
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/075_PreMain/FB_PreMain.scl
@@ -0,0 +1,491 @@
+FUNCTION_BLOCK "FB_PreMain"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ stInOutControlUnitCabinet : "UDT_MainState";
+ END_VAR
+
+ VAR
+ fbMonMotorProtection : "FB_Monitoring";
+ fbMonPhaseFailure : "FB_Monitoring";
+ fbMonFuse400V : "FB_Monitoring";
+ fbMonFuse24V : "FB_Monitoring";
+ fbMonPressure : "FB_Monitoring";
+ fbMonMainContactorsUH04 : "FB_Monitoring";
+ fbMonSafetyContactorsExternOmniflo : "FB_Monitoring";
+ fbMonSafetyContactorsExternReserve : "FB_Monitoring";
+ fbMonFAS1 : "FB_Monitoring"; // IF from FACP "fire alarm" DI0034
+ fbMonFAS2 : "FB_Monitoring"; // IF from FACP "fire alarm" DI0033
+ fbMonFPG_Open : "FB_Monitoring"; // Control from FPG
+ fbMonFPG_Fault : "FB_Monitoring"; // Control from FPG
+ fbMonFPG_Fire : "FB_Monitoring"; // Control from FPG
+ fbMonCommFortnaWCS : "FB_Monitoring";
+ fbMonCommFortnaWESDeviceHub : "FB_Monitoring";
+ xAllReadyToStart { S7_SetPoint := 'True'} : Bool;
+ fbStateMain : "FB_StateMain";
+ arESTOPAck { S7_SetPoint := 'False'} : Array[0..4] of "FB_ESTOPhandling";
+ xReInit : Bool;
+ fTrigReIntTime {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
+ tOfReIntTime {InstructionName := 'TOF_TIME'; LibVersion := '1.0'} : TOF_TIME; // nach Hochfahren vergeht diese Zeit bis erstmalig Quit
+ END_VAR
+
+ VAR_TEMP
+ tDebug : Int;
+ nIdx : USInt;
+ END_VAR
+
+ VAR CONSTANT
+ c_UH04 : Int := 0; // Konstante für ESTOP
+ c_UZ0409 : Int := 1; // Konstante für ESTOP
+ c_UH04_Extern1 : Int := 2; // Konstante für ESTOP
+ c_UH04_Extern2 : Int := 3; // Konstante für ESTOP
+ END_VAR
+
+
+BEGIN
+
+ REGION Reinitialisieren
+ #tOfReIntTime(IN := NOT #xReInit,
+ PT := T#10s);
+
+ IF NOT #xReInit THEN
+ #xReInit := TRUE;
+ END_IF;
+
+ #fTrigReIntTime(CLK := #tOfReIntTime.Q);
+
+ END_REGION
+
+ REGION CycleTime
+ // "DB_MachineGlobal".nLogicCycle := stInOutControlUnitCabinet.nLogicCycle + 1;
+ #tDebug := RD_SYS_T("DB_MachineGlobal".TimePLC);
+ // #fbCycleTime("DB_MachineGlobal".nPrevCycle);
+ END_REGION
+
+ REGION Monitoring
+ REGION Motor protection
+ #fbMonMotorProtection.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonMotorProtection.stSettings.xSelfQuit := FALSE;
+ #fbMonMotorProtection(sInFctnName := 'Motorschutz',
+ sInPrefix := 'UH04',
+ sInAlarmMessage := 'Motorschutz ausgeloest',
+ sInSuffix := 'FC0060-FC0074',
+ wInTextListId_Function := 3,
+ wInTextListId_Message := 1,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "FC0060" AND "FC0061" AND "FC0062" AND "FC0063" AND "FC0064" AND "FC0065" AND "FC0066" AND
+ "FC0070" AND "FC0071" AND "FC0072" AND "FC0073" AND "FC0074",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stMotorProtection.UH04);
+ END_REGION
+
+ REGION Phase failure
+ #fbMonPhaseFailure.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonPhaseFailure.stSettings.xSelfQuit := FALSE;
+ #fbMonPhaseFailure(sInFctnName := 'Phasenausfall',
+ sInPrefix := 'UH04',
+ sInAlarmMessage := 'Phase ausgefallen',
+ sInSuffix := 'DI0005',
+ wInTextListId_Function := 6,
+ wInTextListId_Message := 2,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "DI0005",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stPhase.UH04_400V);
+ END_REGION
+
+ REGION 400V
+ #fbMonFuse400V.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFuse400V.stSettings.xSelfQuit := FALSE;
+ #fbMonFuse400V(sInFctnName := 'Sicherungsfall',
+ sInPrefix := 'UH04 400V',
+ sInAlarmMessage := 'Sicherung ausgeloest',
+ sInSuffix := 'DI0016',
+ wInTextListId_Function := 4,
+ wInTextListId_Message := 3,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "DI0016",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFuse.UH04_400V);
+ END_REGION
+
+ REGION 24V
+ #fbMonFuse24V.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFuse24V.stSettings.xSelfQuit := FALSE;
+ #fbMonFuse24V(sInFctnName := 'Sicherungsfall',
+ sInPrefix := 'UH04 24V',
+ sInAlarmMessage := 'Sicherung ausgeloest',
+ sInSuffix := 'DI0021',
+ wInTextListId_Function := 4,
+ wInTextListId_Message := 3,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "DI0021",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFuse.UH04_24V);
+ END_REGION
+
+
+ REGION Pressure
+ #fbMonPressure.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonPressure.stSettings.xSelfQuit := FALSE;
+ #fbMonPressure(sInFctnName := 'Druckluftueberwachung',
+ sInPrefix := 'UH04',
+ sInAlarmMessage := 'Druckluft zu niedrig',
+ sInSuffix := 'BP0004',
+ wInTextListId_Function := 5,
+ wInTextListId_Message := 4,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "BP0004",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stPressure.UH04);
+ END_REGION
+
+ REGION Hauptschütze UH04
+ #fbMonMainContactorsUH04.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonMainContactorsUH04.stSettings.xSelfQuit := FALSE;
+ #fbMonMainContactorsUH04(sInFctnName := 'Hauptschuetzueberwachung',
+ sInPrefix := 'UH04',
+ sInAlarmMessage := 'Hauptschuetze Fehler',
+ sInSuffix := 'QA0610-QA0613',
+ wInTextListId_Function := 7,
+ wInTextListId_Message := 5,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "DB_InterfaceSafety".stFromSafety.stMainContactorsUH04.xOk,
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stMainContactor.UH04);
+ END_REGION
+
+ REGION Safetyrelais Extern Omniflo
+ #fbMonSafetyContactorsExternOmniflo.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonSafetyContactorsExternOmniflo.stSettings.xSelfQuit := FALSE;
+ #fbMonSafetyContactorsExternOmniflo(sInFctnName := 'Relaisueberwachung',
+ sInPrefix := 'UH04->UH06',
+ sInAlarmMessage := 'Relais Fehler',
+ sInSuffix := 'QA0660/QA0661',
+ wInTextListId_Function := 9,
+ wInTextListId_Message := 9,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternOmniflo.xOk,
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stMainContactor.ExternOmniflo);
+ END_REGION
+
+ REGION Safetyrelais Extern Reserve
+ #fbMonSafetyContactorsExternReserve.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonSafetyContactorsExternReserve.stSettings.xSelfQuit := FALSE;
+ #fbMonSafetyContactorsExternReserve(sInFctnName := 'Relaisueberwachung',
+ sInPrefix := 'UH04',
+ sInAlarmMessage := 'Relais Fehler',
+ sInSuffix := 'QA0662/QA0663',
+ wInTextListId_Function := 9,
+ wInTextListId_Message := 9,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternReserve.xOk,
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stMainContactor.ExternReserve);
+ END_REGION
+
+ REGION Brandschutz
+
+ REGION FAS 1
+ #fbMonFAS1.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFAS1.stSettings.xSelfQuit := FALSE;
+ #fbMonFAS1(sInFctnName := 'Feueralarm',
+ sInPrefix := 'UH04/FAS1',
+ sInAlarmMessage := 'Feueralarm Signal 1',
+ sInSuffix := 'DI0034',
+ wInTextListId_Function := 8,
+ wInTextListId_Message := 6,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
+ xInSignal := "DI0034",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFAS1);
+ END_REGION
+
+ REGION FAS 2
+ #fbMonFAS2.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFAS2.stSettings.xSelfQuit := FALSE;
+ #fbMonFAS2(sInFctnName := 'Feueralarm',
+ sInPrefix := 'UH04/FAS2',
+ sInAlarmMessage := 'Feueralarm Signal 2',
+ sInSuffix := 'DI0033',
+ wInTextListId_Function := 8,
+ wInTextListId_Message := 6,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
+ xInSignal := "DI0033" OR TRUE,
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFAS2);
+ END_REGION
+
+ REGION FPG open
+ #fbMonFPG_Open.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFPG_Open.stSettings.xSelfQuit := FALSE;
+ #fbMonFPG_Open(sInFctnName := 'Feueralarm',
+ sInPrefix := 'UH04/FD411',
+ sInAlarmMessage := 'Tor nicht offen',
+ sInSuffix := 'DI0037',
+ wInTextListId_Function := 8,
+ wInTextListId_Message := 7,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
+ xInSignal := "DI0037",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.FPCOpened);
+ END_REGION
+
+ REGION FPG fault
+ #fbMonFPG_Fault.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFPG_Fault.stSettings.xSelfQuit := FALSE;
+ #fbMonFPG_Fault(sInFctnName := 'Feueralarm',
+ sInPrefix := 'UH04/FD411',
+ sInAlarmMessage := 'Fehler',
+ sInSuffix := 'DI0036',
+ wInTextListId_Function := 8,
+ wInTextListId_Message := 8,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
+ xInSignal := "DI0036",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFault);
+ END_REGION
+
+ REGION FPG Fire
+ #fbMonFPG_Fire.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonFPG_Fire.stSettings.xSelfQuit := FALSE;
+ #fbMonFPG_Fire(sInFctnName := 'Feueralarm',
+ sInPrefix := 'UH04/FD411',
+ sInAlarmMessage := 'Feuer',
+ sInSuffix := 'DI0035',
+ wInTextListId_Function := 8,
+ wInTextListId_Message := 6,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
+ xInSignal := "DI0035",
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFPG);
+ END_REGION
+
+ END_REGION
+
+ REGION MISC (nicht für AllReadyToStart)
+
+ REGION TCP-Kommunikation
+ REGION Fortna WCS
+ #fbMonCommFortnaWCS.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonCommFortnaWCS.stSettings.xSelfQuit := TRUE;
+ #fbMonCommFortnaWCS(sInFctnName := 'Kommunikationsfehler',
+ sInPrefix := 'UH04',
+ sInSuffix := 'Fortna WCS',
+ wInTextListId_Function := 20000,
+ wInTextListId_Message := 20000,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "FB_CommunicationWCSBL_DB".fbTeleHandler.xOutConnectionActive,
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stExternal.TCPFortnaWCS);
+ END_REGION
+
+ REGION Fortna WES DeviceHub
+ #fbMonCommFortnaWESDeviceHub.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonCommFortnaWESDeviceHub.stSettings.xSelfQuit := TRUE;
+ #fbMonCommFortnaWESDeviceHub(sInFctnName := 'Kommunikationsfehler',
+ sInPrefix := 'UH04',
+ sInSuffix := 'Fortna WES',
+ wInTextListId_Function := 20000,
+ wInTextListId_Message := 20000,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError,
+ xInSignal := "FB_CommunicationWES_DeviceHub_DB".fbTeleHandler.xOutConnectionActive,
+ InOutMachineState := #stInOutControlUnitCabinet,
+ stOutHMI => "DB_Interface_HMI".stSystem.stExternal.TCPFortnaWES);
+ END_REGION
+
+ END_REGION
+
+ END_REGION
+
+ END_REGION
+
+ REGION AllReadyToStart
+
+ #xAllReadyToStart :=
+ #fbMonPhaseFailure.xOutOk AND
+ #fbMonFuse24V.xOutOk AND
+ #fbMonFuse400V.xOutOk AND
+ #fbMonPressure.xOutOk AND
+ #fbMonMotorProtection.xOutOk AND
+ #fbMonMainContactorsUH04.xOutOk AND
+ #fbMonSafetyContactorsExternOmniflo.xOutOk AND
+ #fbMonSafetyContactorsExternReserve.xOutOk AND
+ #fbMonFAS1.xOutOk AND
+ #fbMonFAS2.xOutOk AND
+ #fbMonFPG_Fire.xOutOk AND
+ #fbMonFPG_Fault.xOutOk AND
+ #fbMonFPG_Open.xOutOk;
+
+ END_REGION
+
+ REGION StateMain
+
+ #fbStateMain.stSettings.xEnableStartUpWarning := TRUE;
+ #fbStateMain.stSettings.tStartUpTime := T#5s;
+ #fbStateMain(xInBtnMachineOn := "SF0001",
+ xInBtnMachineNotOff := "SF0000",
+ xInBtnTrigMot := "SF0002",
+ xInBtnQuitError := "SF0002",
+ xInAllReadyToStart := #xAllReadyToStart,
+ xInAllInExecute := TRUE,
+ xInAllStarted := TRUE,
+ xInSafetyActive := "DB_InterfaceSafety".stFromSafety.EStopMain.Q, //("Main_Safety_RTG1_DB".ESTOP1_Main.Q AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ACK_REQ AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ERROR),
+ xInAllInSafeState := "DB_InterfaceSafety".stFromSafety.EStopMain.Q, //("Main_Safety_RTG1_DB".ESTOP1_Main.Q AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ACK_REQ AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ERROR),
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHMI := "DB_Interface_HMI".stStateMachine);
+ END_REGION
+
+ REGION Interface Safety
+
+ REGION to Safety
+ "DB_InterfaceSafety".stToSafety.xAckGlob := "IBN".xAckGlob OR #fTrigReIntTime.Q;
+ "DB_InterfaceSafety".stToSafety.xMachineRunning := #stInOutControlUnitCabinet.xRunning;
+ "DB_InterfaceSafety".stToSafety.xMachineStarting := #stInOutControlUnitCabinet.xStarting;
+ "DB_InterfaceSafety".stToSafety.xQuitButtonHss := "SF0002" OR #stInOutControlUnitCabinet.xQuitError OR #fTrigReIntTime.Q;
+ "DB_InterfaceSafety".stToSafety.xQuitButtonUZ0409 := "SF0051" OR "IBN".xAckGlob OR #fTrigReIntTime.Q;
+ "DB_InterfaceSafety".stToSafety.stMainContactorsUH04.xFeedback := "DI0013";
+ "DB_InterfaceSafety".stToSafety.stSafetyContactorsExternOmniflo.xFeedback := "DI0014";
+ "DB_InterfaceSafety".stToSafety.stSafetyContactorsExternReserve.xFeedback := "DI0015";
+ END_REGION
+
+
+ REGION from Safety
+ ;
+ END_REGION
+
+ END_REGION
+
+ REGION Outputs
+
+ //E-Stop Signalsäule
+ "PF0030" := "SF0003" OR #fbMonFAS1.xOutError
+ OR #fbMonFAS2.xOutError
+ OR #fbMonFPG_Fire.xOutError
+ OR #fbMonFPG_Fault.xOutError
+ OR #fbMonFPG_Open.xOutError
+ OR NOT "DB_InterfaceSafety".stFromSafety.EStopMain.Q;
+
+ //Anfahrwarnung Signalsäule
+ "PF0033" := #stInOutControlUnitCabinet.xStartUpWarning AND "Clock_1Hz";
+
+ //LED Störung + Signalsäule gelb
+ "PF0000" := "PF0031" :=
+ "SF0003" OR
+ #fbMonFuse24V.xOutLedError OR
+ #fbMonFuse400V.xOutLedError OR
+ #fbMonMotorProtection.xOutLedError OR
+ #fbMonPhaseFailure.xOutLedError OR
+ #fbMonPressure.xOutLedError OR
+ #fbMonMainContactorsUH04.xOutLedError OR
+ #fbMonSafetyContactorsExternOmniflo.xOutLedError OR
+ #fbMonSafetyContactorsExternReserve.xOutLedError;
+
+ //LED Ein + Signalsäule grün
+ "PF0001" := "PF0032" := "PF0050" := "PF0052" := "PF0054" := "PF0056" := "SF0003" OR (#stInOutControlUnitCabinet.xRunning AND NOT #stInOutControlUnitCabinet.xStartUpWarning) OR
+ (NOT #stInOutControlUnitCabinet.xRunning AND #stInOutControlUnitCabinet.xStartUpWarning);
+
+ //LED Start nach Störung
+ "PF0002" := "SF0003" OR #arESTOPAck[0].xOutLed (* OR NOT #xAllReadyToStart *)OR
+ (#fbMonMotorProtection.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonPhaseFailure.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonFuse24V.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonFuse400V.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonPressure.xOutAckReq AND "Clock_1Hz") OR
+ ("DB_InterfaceSafety".stFromSafety.stMainContactorsUH04.xAckReq AND "Clock_1Hz") OR
+ ("DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternOmniflo.xAckReq AND "Clock_1Hz") OR
+ ("DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternReserve.xAckReq AND "Clock_1Hz") OR
+ (#fbMonFAS1.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonFAS2.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonFPG_Fire.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonFPG_Fault.xOutAckReq AND "Clock_1Hz") OR
+ (#fbMonFPG_Open.xOutAckReq AND "Clock_1Hz") OR
+ ("fbMain_DB".fbCarousel4003.xOutGridError AND "Clock_1Hz");
+
+ //LED Druckluft
+ "PF0003" := "SF0003" OR #fbMonPressure.xOutLedError;
+
+ //LED Motorschutz
+ "PF0004" := "SF0003" OR #fbMonMotorProtection.xOutLedError;
+
+ //LED Sicherung
+ "PF0005" := "SF0003" OR #fbMonFuse24V.xOutLedError OR #fbMonFuse400V.xOutLedError;
+
+ //LED Brandfall
+ "PF0006" := "SF0003" OR #fbMonFAS1.xOutError
+ OR #fbMonFAS2.xOutError
+ OR #fbMonFPG_Fire.xOutError
+ OR #fbMonFPG_Fault.xOutError
+ OR #fbMonFPG_Open.xOutError;
+
+ END_REGION
+
+ REGION Not-Halt Tableaues
+ REGION UH04
+ #arESTOPAck[#c_UH04](sInAlarmFunction := 'HSS',
+ sInAlarmDevice := 'UH04',
+ sInAlarmMessage := 'Not-Halt aktiv',
+ sInAlarmSuffix := 'PF0002',
+ xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopUH04.AckReq,
+ xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopUH04.Q,
+ xInAckReqGlobal := (* #arESTOPAck[1].xOutAckReq OR *)
+ #arESTOPAck[#c_UH04_Extern1].xOutAckReq OR
+ #arESTOPAck[#c_UH04_Extern2].xOutAckReq,
+ //#arESTOPAck[4].xOutAckReq OR
+ xInSafetyNotOkGlobal := (* #arESTOPAck[1].xOutSafetyNotOk OR *)
+ #arESTOPAck[#c_UH04_Extern1].xOutSafetyNotOk OR
+ #arESTOPAck[#c_UH04_Extern2].xOutSafetyNotOk,
+ // #arESTOPAck[4].xOutSafetyNotOk OR
+ xInMainCabinet := TRUE,
+ // xOutLed => "PF0002",
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UH04]);
+ END_REGION
+
+ REGION UH04 Extern1
+ #arESTOPAck[#c_UH04_Extern1](sInAlarmDevice := 'UH04_Ext1/UH06',
+ sInAlarmSuffix := 'PF0002',
+ stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UH04_Extern1],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopExternOmniflo.AckReq,
+ xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopExternOmniflo.Q);
+
+ END_REGION
+
+ REGION UH04 Extern2
+ #arESTOPAck[#c_UH04_Extern2](sInAlarmDevice := 'UH04_Ext2/Res',
+ sInAlarmSuffix := 'PF0002',
+ stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UH04_Extern2],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopExternReserve.AckReq,
+ xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopExternReserve.Q);
+
+ END_REGION
+
+ REGION UZ0409
+ #arESTOPAck[#c_UZ0409](sInAlarmFunction := 'Bedientableau',
+ sInAlarmDevice := 'UZ0409',
+ sInAlarmMessage := 'Not-Halt aktiv',
+ sInAlarmSuffix := 'PF0051',
+ wInTextListId_Function := 1,
+ wInTextListId_Message := 0,
+ stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UZ0409],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopUZ0409.AckReq,
+ xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopUZ0409.Q);
+
+ "PF0051" := #arESTOPAck[#c_UZ0409].xOutLed OR "SF0003";
+ END_REGION
+ END_REGION
+
+ REGION SCADA-Interface
+ "FB-OPC_UA_System-Stat_DB"(nInSystemStat := #fbStateMain.nState, //State Main (Running, Idle, Stopped...)
+ xInFireAlarm := (#fbMonFAS1.xOutError OR #fbMonFAS2.xOutError OR #fbMonFPG_Fire.xOutError), // Nur Feueralarm
+ xInSafetyStop := NOT "DB_InterfaceSafety".stFromSafety.EStopMain.Q, // Not-Halt
+ xInError := "DB_Interface_HMI".nActiveAlarms > 0, //Alle aktiven Meldungen über HMI Interface
+ xInCommunicationError := #fbMonCommFortnaWCS.xOutError OR #fbMonCommFortnaWESDeviceHub.xOutError,
+ nOutScadaStatus => "DB_Status".System.Status);
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/075_PreMain/fbPreMain_DB.xml b/=A01+UH04-KF00/Programmbausteine/075_PreMain/fbPreMain_DB.xml
new file mode 100644
index 0000000..41fbc0a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/075_PreMain/fbPreMain_DB.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+ FB_PreMain
+ FB
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ fbPreMain_DB
+
+ 16
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/100_Main/FB_CallAMRManagement_DB.xml b/=A01+UH04-KF00/Programmbausteine/100_Main/FB_CallAMRManagement_DB.xml
new file mode 100644
index 0000000..865d6b0
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/100_Main/FB_CallAMRManagement_DB.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+ FB_CallAMRManagement
+ FB
+
+
+
+
+
+
+ FB_CallAMRManagement_DB
+
+ 7
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/100_Main/FB_Main.scl b/=A01+UH04-KF00/Programmbausteine/100_Main/FB_Main.scl
new file mode 100644
index 0000000..5f6091e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/100_Main/FB_Main.scl
@@ -0,0 +1,1835 @@
+FUNCTION_BLOCK "FB_Main"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ stInOutControlUnitCabinet : "UDT_MainState";
+ END_VAR
+
+ VAR
+ fbCarousel4003 : "FB_Conveyor";
+ END_VAR
+ VAR RETAIN
+ arCognexInterface { S7_SetPoint := 'False'} : Array[1.."cNoScanner"] of "stCognexInterface";
+ END_VAR
+ VAR
+ stCognexInterfaceDummy : "stCognexInterface"; // Als Platzhalter benutzen für TRO ohne Barcode-Leser
+ stBarcodeReaderDummy : "UDT_BarcodeReader";
+ TRO400 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario";
+ TRO401 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario";
+ TRO402 : "FB_ILS_MTRO_1Sep";
+ TRO403 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario";
+ TRO404 : "FB_ILS_MTRO_1Sep";
+ TRO405 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_1Sep1Swi";
+ TRO406 : "FB_ILS_MTRO_1Sep";
+ TRO407 : "FB_ILS_MTRO_1Sep1Swi";
+ TRO408 : "FB_ILS_MTRO_Vario";
+ TRO409 : "FB_ILS_MTRO_1Sep";
+ TRO410 : "FB_ILS_MTRO_1Sep1Swi";
+ TRO411 : "FB_ILS_MTRO_Vario";
+ TRO412 : "FB_ILS_MTRO_1Sep";
+ TRO413 : "FB_ILS_MTRO_1Sep1Swi";
+ TRO414 { S7_SetPoint := 'False'} : "FB_ILS_MTRO_Vario";
+ TRO415 : "FB_ILS_MTRO_1Sep";
+ TRO416 : "FB_ILS_MTRO_1Sep";
+ TRO417 : "FB_ILS_MTRO_1Sep";
+ TRO418 : "FB_ILS_MTRO_Vario";
+ TRO419 : "FB_ILS_MTRO_1Sep";
+ TRO420 : "FB_ILS_MTRO_Vario";
+ TRO421 : "FB_ILS_MTRO_Vario_workStation";
+ TRO422 : "FB_ILS_MTRO_Vario_workStation";
+ TRO423 : "FB_ILS_MTRO_Vario_workStation";
+ TRO424 : "FB_ILS_MTRO_1Sep";
+ fbBarcodeReaderBX4103 : "FB_BarcodeReaderCognex";
+ xStartScan4103 : Bool;
+ xHandshakeScanb4103 : Bool;
+ nBarcodeReaderBX4103_Result : DInt;
+ fbBarcodeReaderBX4105 : "FB_BarcodeReaderCognex";
+ xStartScan4105 : Bool;
+ xHandshakeScan4105 : Bool;
+ nBarcodeReaderBX4105_Result : DInt;
+ fbBarcodeReaderBX4107 : "FB_BarcodeReaderCognex";
+ xStartScan4107 : Bool;
+ xHandshakeScan4107 : Bool;
+ nBarcodeReaderBX4107_Result : DInt;
+ xReInit : Bool;
+ rTrigReInit {InstructionName := 'R_TRIG'; LibVersion := '1.0'; S7_SetPoint := 'False'} : R_TRIG;
+ "rTrig_Workstation 1" {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ "rTrig_Workstation 2" {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ "rTrig_Workstation 3" {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ END_VAR
+
+ VAR_TEMP
+ nActCar : Int;
+ nActNo : Int;
+ nNiu : DInt;
+ stGenerateCarrier : "stCarrier";
+ nCounter1 : DInt;
+ xResult1 : Bool;
+ nIdx : Int;
+ nIdx2 : Int;
+ nFound : Int;
+ stEmptyCarrier : "stCarrier";
+ stEmptyCarrierData : "stJamData";
+ arCarrierPlaceHolder : Array[1..1] of "stCarrier"; // Platzhalter
+ stJamDataPlaceHolder : "stJamData";
+ stHMISwitchPlaceholder : "UDT_UnloadingStation";
+ idx : Int;
+ arEmptyStorageLine_1 : Int;
+ arEmptyStorageLine : Array[1..1] of "stCarrier";
+ t_automatik : Bool;
+ arDummyEventCorrectionInfo : Array[0..1] of "stEventCorrectionInfo";
+ tmpLaneStatus : Array[0..4] of String;
+ arStCarrierLeaveControl : Array[1..1] of "stCarrier";
+ stJamDataLeaveControl : "stJamData";
+ arCarrier4010 : Array[1..1] of "stCarrier"; // Platzhalter
+ stJamData4010 : "stJamData";
+ END_VAR
+
+
+BEGIN
+ REGION Reinitialisieren
+ IF NOT #xReInit THEN
+ #xReInit := TRUE;
+ END_IF;
+
+ #rTrigReInit(CLK := #xReInit);
+
+ IF #rTrigReInit.Q THEN
+
+ #TRO400.nState := "DB_GLOB_TroState".arTroState["cMainTro400"];
+ #TRO401.nState := "DB_GLOB_TroState".arTroState["cMainTro401"];
+ #TRO402.nState := "DB_GLOB_TroState".arTroState["cMainTro402"];
+ #TRO403.nState := "DB_GLOB_TroState".arTroState["cMainTro403"];
+ #TRO404.nState := "DB_GLOB_TroState".arTroState["cMainTro404"];
+ #TRO405.nState := "DB_GLOB_TroState".arTroState["cMainTro405"];
+ #TRO406.nState := "DB_GLOB_TroState".arTroState["cMainTro406"];
+ #TRO407.nState := "DB_GLOB_TroState".arTroState["cMainTro407"];
+ #TRO408.nState := "DB_GLOB_TroState".arTroState["cMainTro408"];
+ #TRO409.nState := "DB_GLOB_TroState".arTroState["cMainTro409"];
+ #TRO410.nState := "DB_GLOB_TroState".arTroState["cMainTro410"];
+ #TRO411.nState := "DB_GLOB_TroState".arTroState["cMainTro411"];
+ #TRO412.nState := "DB_GLOB_TroState".arTroState["cMainTro412"];
+ #TRO413.nState := "DB_GLOB_TroState".arTroState["cMainTro413"];
+ #TRO414.nState := "DB_GLOB_TroState".arTroState["cMainTro414"];
+ #TRO415.nState := "DB_GLOB_TroState".arTroState["cMainTro415"];
+ #TRO416.nState := "DB_GLOB_TroState".arTroState["cMainTro416"];
+ #TRO417.nState := "DB_GLOB_TroState".arTroState["cMainTro417"];
+ #TRO418.nState := "DB_GLOB_TroState".arTroState["cMainTro418"];
+ #TRO419.nState := "DB_GLOB_TroState".arTroState["cMainTro419"];
+ #TRO420.nState := "DB_GLOB_TroState".arTroState["cMainTro420"];
+ #TRO421.nState := "DB_GLOB_TroState".arTroState["cMainTro421"];
+ #TRO422.nState := "DB_GLOB_TroState".arTroState["cMainTro422"];
+ #TRO423.nState := "DB_GLOB_TroState".arTroState["cMainTro423"];
+ #TRO424.nState := "DB_GLOB_TroState".arTroState["cMainTro424"];
+
+ END_IF;
+ END_REGION
+
+ REGION Automatik
+ #t_automatik := "DB_InterfaceSafety".stFromSafety.stMainContactorsUH04.Q;//#stInOutControlUnitCabinet.xRunning AND NOT #stInOutControlUnitCabinet.xStarting AND "DB_InterfaceSafety".stFromSafety.EStopMain.Q;
+ END_REGION
+
+ REGION Conveyors
+ REGION KR-M4003 (Carousel)
+ #fbCarousel4003.xInRequestRun :=
+ "fbPreMain_DB".fbStateMain.nConveyorStartUpCounter = 100 OR
+ #stInOutControlUnitCabinet.xRestart OR
+ #TRO404.xOutCarouselReq OR
+ #TRO405.xOutCarouselReq1 OR
+ #TRO406.xOutCarouselReq OR
+ #TRO407.xOutCarouselReq1 OR
+ #TRO409.xOutCarouselReq OR
+ #TRO410.xOutCarouselReq1 OR
+ #TRO412.xOutCarouselReq OR
+ #TRO413.xOutCarouselReq1 OR
+ #TRO415.xOutCarouselReq OR
+ #TRO416.xOutCarouselReq OR
+ #TRO424.xOutCarouselReq OR
+ #TRO417.xOutCarouselReq;
+
+ #fbCarousel4003.Settings.tEnergySafeTime := "cTimeEnergySafe" + t#20s;
+ #fbCarousel4003.Settings.xGridActive := TRUE;
+ #fbCarousel4003.Settings.sMotorProtectName := 'FC0060';
+ #fbCarousel4003.Settings.sGridSenName := 'BG3432';
+ #fbCarousel4003(xInEnabled := "cTodoTRUE",
+ xInGridSen := "DB_Inputs".Sensors["cInBG3432"].xDirectSensor,
+ xInGridQuit := "SF0002",
+ xInAutomaticMode := #t_automatik,
+ xInMotorProtectionMonitoring := "FC0060",
+ xOutPowerContactor => "MA0060",
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutInterfaceHMI := "DB_Interface_HMI".stConveyors.stCarousel.stCar4003);
+ END_REGION
+ END_REGION
+
+ REGION TROs
+
+ REGION TRO 400 (Vario) // Loaded to AMR
+ #TRO400.stInSeparator1.Settings.nSeparatorNo := "cSep400.1";
+ #TRO400.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO400.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO400.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO400.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO400.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO400.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO400.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO400.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3260"];
+
+ #TRO400.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO400.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO400.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3262"]; //Finger in Pos
+ #TRO400.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3240"]; // Conveyor full
+ #TRO400.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3243"]; // Jam detector
+ #TRO400.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3261"]; // MT in Pos
+
+ #TRO400.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO400.stInVario.Settings.tWaitForJog := T#300ms;
+ #TRO400.stInVario.Settings.tConvEmpty := T#40000ms;//T#8000ms;
+ #TRO400.stInVario.Settings.nCountCarrier := 1;
+ #TRO400.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO400.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO400.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO400.stInVario.Settings.tRasterHigh := T#5s;
+ #TRO400.stInVario.Settings.tRasterLow := T#5s;
+
+ #TRO400.stInPriorityManager.xReleaseOk := TRUE; //keine Vorfahrtsregelung notwendig
+
+ #TRO400.stInSettings.xIsBorner := TRUE;
+ #TRO400(nInMainTroNo := "cMainTro400",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO400,
+ xInMotorProtection := "FC0070",
+ xInAutomatic := #t_automatik,
+ arInOutJamEntr := "DB_JamArea4000".stJam4000_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4000".stJam4000_1.stData,
+ arInOutJamFinger := "DB_JamArea4001".stJam4001_1.arCarrier,
+ stInOutJamFinger := "DB_JamArea4001".stJam4001_1.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO400,
+ xOutStopper => "MB3260",
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro400"],
+ xOutVarioMotor => "MA0070");
+ END_REGION
+
+ REGION TRO 401 (Vario)
+ #TRO401.stInSeparator1.Settings.nSeparatorNo := "cSep401.1";
+ #TRO401.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO401.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO401.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO401.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO401.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO401.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO401.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO401.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3242"];
+
+ #TRO401.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO401.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO401.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO401.stInVario.Settings.tWaitForJog := T#350ms;
+ #TRO401.stInVario.Settings.tConvEmpty := T#50000ms;
+ #TRO401.stInVario.Settings.nCountCarrier := 1;
+ #TRO401.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO401.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO401.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO401.stInVario.Settings.tRasterHigh := T#5s;
+ #TRO401.stInVario.Settings.tRasterLow := T#5s;
+
+ #TRO401.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3244"]; //Pusher Dog in Pos
+ #TRO401.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3245"]; // Conveyor full
+ #TRO401.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3246"]; // Jam detector
+ #TRO401.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3241"]; // MT in Pos
+
+ #TRO401.stInPriorityManager.xReleaseOk := TRUE; //keine Vorfahrtsregelung notwendig
+
+ #TRO401(nInMainTroNo := "cMainTro401",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO401,
+ xInMotorProtection := "FC0071",
+ xInAutomatic := #t_automatik,
+ arInOutJamEntr := "DB_JamArea4001".stJam4001_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4001".stJam4001_1.stData,
+ arInOutJamFinger := "DB_JamArea4001".stJam4001_2.arCarrier,
+ stInOutJamFinger := "DB_JamArea4001".stJam4001_2.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO401,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ xOutStopper => "MB3242",
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro401"],
+ xOutVarioMotor => "MA0071");
+
+
+ END_REGION
+
+ REGION TRO 402 (1Sep) (Vor Brandschutztor)
+ #TRO402.stInSeparator1.Settings.nSeparatorNo := "cSep402.1";
+ #TRO402.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO402.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO402.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO402.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO402.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO402.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO402.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO402.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3247"];
+ #TRO402.stInSenJam2 := "DB_Inputs".Sensors["cInBG3423"];
+
+ #TRO402.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO402.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO402.stInPriorityManager.xReleaseOk := "cTodoTRUE";
+
+ #TRO402(nInMainTroNo := "cMainTro402",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInCarouselRun := TRUE, //Gefälle
+ xInRelease := "DB_TRO_Test".TRO402,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4001".stJam4001_2.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4001".stJam4001_2.stData,
+ arInOutJamExit2 := "DB_JamArea4002".stJam4002_1.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4002".stJam4002_1.stData,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro402"],
+ xOutStopper1 => "MB3247",
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO402);
+
+ END_REGION
+
+ REGION TRO 403 (Vario)
+ #TRO403.stInSeparator1.Settings.nSeparatorNo := "cSep403.1";
+ #TRO403.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO403.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO403.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO403.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO403.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO403.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO403.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO403.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3420"];
+
+ #TRO403.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO403.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO403.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3421"]; //Finger in Pos
+ #TRO403.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3390"]; // Conveyor full
+ #TRO403.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3387"]; // Jam detector
+ #TRO403.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3426"]; // MT in Pos
+
+ #TRO403.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO403.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO403.stInVario.Settings.tConvEmpty := t#20s;//T#8000ms;
+ #TRO403.stInVario.Settings.nCountCarrier := 1;
+ #TRO403.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO403.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO403.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO403.stInVario.Settings.tRasterHigh := T#5s;
+ #TRO403.stInVario.Settings.tRasterLow := T#5s;
+
+ #TRO403.stInPriorityManager.xReleaseOk := TRUE; //keine Vorfahrtsregelung notwendig
+
+ #TRO403(nInMainTroNo := "cMainTro403",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO403,
+ xInMotorProtection := "FC0073",
+ xInAutomatic := #t_automatik,
+ arInOutJamEntr := "DB_JamArea4002".stJam4002_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4002".stJam4002_1.stData,
+ arInOutJamFinger := "DB_JamArea4002".stJam4002_2.arCarrier,
+ stInOutJamFinger := "DB_JamArea4002".stJam4002_2.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO403,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro403"],
+ xOutStopper => "MB3420",
+ xOutVarioMotor => "MA0073");
+
+ END_REGION
+
+ REGION TRO 404 (1Sep)
+
+ #TRO404.stInSeparator1.Settings.nSeparatorNo := "cSep404.1";
+ #TRO404.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO404.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO404.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO404.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO404.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO404.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO404.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO404.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3386"];
+ #TRO404.stInSenJam2 := "DB_Inputs".Sensors["cInBG3367"];
+
+ IF "DB_JamArea4002".stJam4002_2.arCarrier[1].nBarcode > 0 THEN
+ "DB_JamArea4002".stJam4002_2.arCarrier[1].bStatus.%X1 := TRUE; //Wir nehmen erstmal an, dass alles, was vom Highway kommt, beladen ist. TRO405 kontrolliert nach
+ ELSE
+ "DB_JamArea4002".stJam4002_2.arCarrier[1].bStatus.%X1 := FALSE;
+ END_IF;
+
+ #TRO404.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO404.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO404(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO404.TroIn,
+ stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO404.TroOut,
+ nInMainTroNo := "cMainTro404",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ xInRelease := NOT "FB_CallAMRManagement_DB".Lfb_AMRManagement.xOutStopFeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4002".stJam4002_2.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4002".stJam4002_2.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_8.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_8.stData,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro404"],
+ xOutStopper1 => "MB3386",
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO404);
+ END_REGION
+ REGION TEST!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ // "DB_JamArea4003".stJam4003_1.arCarrier[1].nDestination := "cDestLeaveAmr";
+ END_REGION
+
+ REGION TRO 405 (1Sep1Switch) + Scanner (BX4100) + Behangskontrolle
+ //TYP ÄNDERN MIT PART SENSOR LOGIK!!!!!!
+ #TRO405.stInSeparator1.Settings.nSeparatorNo := "cSep405.1";
+ #TRO405.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO405.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO405.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO405.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO405.stInSeparator1.Settings.xPluggedPart := TRUE;
+ #TRO405.stInSeparator1.Settings.xPluggedScanner := TRUE;
+ #TRO405.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3360"];
+ #TRO405.stInSeparator1.stSenPart := "DB_Inputs".Sensors["cInBG3361"];
+ #TRO405.stInSenJam2 := "DB_Inputs".Sensors["cInBG3362"];
+ #TRO405.stInSenJam3 := "DB_Inputs".Sensors["cInBG3301"];
+
+ #TRO405.stInSwitch1.Settings.nSwitchNo := "cSwi405.1";
+ #TRO405.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
+ #TRO405.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
+ #TRO405.stInSwitch1.Settings.tTransitEx := T#5s;
+ #TRO405.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
+
+ #TRO405.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
+ #TRO405.stInBarcodeReader.Settings.tTimeout := T#5s;
+
+ #arCognexInterface["cScannerBX4100"].xInCamTriggerReady := "bx4100-TriggerReady";
+ #arCognexInterface["cScannerBX4100"].xInCamTriggerAck := "bx4100-TriggerAck";
+ #arCognexInterface["cScannerBX4100"].xInCamResultsAvailable := "bx4100-Results Available";
+ #arCognexInterface["cScannerBX4100"].xInCamGeneralFault := "bx4100-General Fault";
+ #arCognexInterface["cScannerBX4100"].hwInCamInspectionResults := "BX4100~Ergebnisse_–_64_Bytes_1";
+
+ #stJamData4010.Config.nCapacitySet := 1;
+
+ #TRO405.stInPriorityManagerDir1.xReleaseOk := TRUE; //Keine Vorfahrtsregelung notwendig
+ // #TRO405.stInSettings.bSepType.%X1 := TRUE;
+ #TRO405.stInSettings.bSepType.%X2 := TRUE;
+ #TRO405(nInMainTroNo := "cMainTro405",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO405,
+ xInCarouselRun1 := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO405,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #arCognexInterface["cScannerBX4100"],
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_1.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_1.stData,
+ arInOutJamExit2 := #arCarrier4010, //"DB_JamArea4010".stJam4010_1.arCarrier,
+ stInOutJamExit2 := #stJamData4010, //"DB_JamArea4010".stJam4010_1.stData,
+ arInOutJamExit3 := "DB_JamArea4003".stJam4003_2.arCarrier,
+ stInOutJamExit3 := "DB_JamArea4003".stJam4003_2.stData,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro405"],
+ xOutStopper1 => "MB3360",
+ xOutSw1ExTo3 => "MB3362");
+
+ IF #TRO405.nState = 1400 THEN
+ IF #TRO405.xTrolleyWithPart AND "DB_JamArea4003".stJam4003_1.arCarrier[1].nDestination = "cDestLeaveAmr" THEN
+ "DB_JamArea4003".stJam4003_1.arCarrier[1].nDestination := "cDestStayAmr";
+ // ELSE
+
+ // "DB_JamArea4003".stJam4003_1.arCarrier[1].nDestination := "cDestLeaveAmr";
+ ELSIF #TRO405.xTrolleyWoPart THEN //auskommentiert für test mit leercarriern
+ "DB_JamArea4003".stJam4003_1.arCarrier[1].nDestination := "cDestLeaveAmr" ; //leave
+ END_IF;
+ END_IF;
+
+ "bx4100-TriggerEnable" := #arCognexInterface["cScannerBX4100"].xOutCamTriggerEnable;
+ "bx4100-Trigger" := #arCognexInterface["cScannerBX4100"].xOutCamTrigger;
+ "bx4100-ResultsAck" := #arCognexInterface["cScannerBX4100"].xOutCamResultsAck;
+
+ REGION Carr_Glob_Correction
+ "FC_CARR_GLOB_CORRECTION"(xInStart := #TRO405.xOutCorrection, //Führe Korrektur aus
+ nInBarcodeScan := #TRO405.nBarcodeResult,
+ nInStation := 0,
+ arOutEventLogInfo => #arDummyEventCorrectionInfo,
+ InOutCarrierExpect := "DB_JamArea4003".stJam4003_1.arCarrier[1]);
+ END_REGION
+
+ REGION Direction
+ "FC_Direction"(nInSwitchNo := "cSwi405.1",
+ nOutDirection => #TRO405.nInDirection,
+ InOutCarrier := "DB_JamArea4003".stJam4003_1.arCarrier[1]);
+
+ END_REGION
+
+ REGION Loaded MT: Send DReqM to Fortna WCS
+ IF #TRO405.xOutNewScan AND "DB_Test".xCommuActive THEN
+
+ #tmpLaneStatus[0] := "FC_Get_LaneStatus"(stInOutJamData := "DB_JamArea4004"."stJam4004_1".stData,
+ stInOutWorkStation := "DB_Prozessdaten".stWorkStations.stMPS1);
+ #tmpLaneStatus[1] := "FC_Get_LaneStatus"(stInOutJamData := "DB_JamArea4006"."stJam4006_1".stData,
+ stInOutWorkStation := "DB_Prozessdaten".stWorkStations.stMPS2);
+ #tmpLaneStatus[2] := "FC_Get_LaneStatus"(stInOutJamData := "DB_JamArea4008"."stJam4008_1".stData,
+ stInOutWorkStation := "DB_Prozessdaten".stWorkStations.stMPS3);
+
+ "FC_Send_GOHDReqM"(sInPLCID := "cPLCID",
+ xInSSCCReq := FALSE,
+ xInLengthReq := FALSE,
+ xInDockDoorReq := FALSE,
+ xInLaneStatusReq := TRUE,
+ nInBarcode := #TRO405.nOutScanResult,
+ sInSSCC := '',
+ sInDecisionPoint := 'GOH.Decant.01', //todo
+ sInDockDoor := '',
+ sInLengthInfo := '',
+ arInLaneStatus := #tmpLaneStatus,
+ nInLaneCnt := 3,
+ FIFO := "DB_LGF_FIFO_CommWCSBL",
+ BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
+ nInOutSequenceNumber:="DB_CommunicationParameters".nSeqNumWESDeviceHub);
+ END_IF;
+ END_REGION
+
+ REGION Provisorium - Zielvorgabe
+ IF "DB_Test".nBatchCounter > 5 THEN
+ "DB_Test".nBatchCounter := 1;
+ "DB_Test".nTargetTest += 1;
+ IF "DB_Test".nTargetTest > 3 THEN
+ "DB_Test".nTargetTest := 1;
+ END_IF;
+ END_IF;
+
+ IF #TRO405.nState = 1500 AND #TRO405.fbSeparator1.xOutTrolleyReleasedEdge AND "DB_JamArea4003".stJam4003_1.arCarrier[1].bStatus.%X0 AND "DB_JamArea4003".stJam4003_1.arCarrier[1].nDestination <> "cDestLeaveAmr"(* AND "DB_JamArea4003".stJam4003_1.arCarrier[1].bStatus.%X1 *) THEN //Nur beladene ankündigen
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.nBarcode := #TRO405.nOutScanResult;
+
+ IF "DB_Test".nTargetTest = 1 THEN
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[0] := '1';
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[1] := '1';
+ ELSIF "DB_Test".nTargetTest = 2 THEN
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[0] := '2';
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[1] := '2';
+ ELSIF "DB_Test".nTargetTest = 3 THEN
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[0] := '3';
+ "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[1] := '3';
+ END_IF;
+
+ // "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[0] := INT_TO_CHAR(IN := "DB_Test".nTargetTest);
+ // "DB_Handshake".udtIn_TeleDataFromMES.stPayload.arActions[1] := INT_TO_CHAR(IN := "DB_Test".nTargetTest);
+
+ "DB_Test".nBatchCounter += 1;
+
+ "DB_Handshake".udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := TRUE;
+ END_IF;
+
+ IF "DB_Handshake".udt_HandshakeMESStorage.str_Status.xNewDataSaved
+ THEN
+ "DB_Handshake".udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := FALSE;
+ END_IF;
+
+ END_REGION ;
+
+ (* IF #TRO405.xOutBookedDir2 AND "DB_Test".xCommuActive THEN
+ "FC_Send_GOHDUM"(sInPLCID := "cPLCID",
+ nInBarcode := #TRO405.stOutLastCarrier.nBarcode,
+ sInDecisionPoint := 'GOH.Decant.01',
+ sInActionTaken := '1',
+ nReasonCode := 1,
+ FIFO := "DB_LGF_FIFO_CommWCSBL",
+ BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
+ nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
+ END_IF; *)
+
+
+ END_REGION
+
+
+ REGION TRO 406 (1Sep) + Scanner (BX4101)
+
+ #TRO406.stInSeparator1.Settings.nSeparatorNo := "cSep406.1";
+ #TRO406.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
+ #TRO406.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO406.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO406.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO406.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO406.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO406.stInSeparator1.Settings.xPluggedScanner := TRUE;
+ #TRO406.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3300"];
+ #TRO406.stInSenJam2 := "DB_Inputs".Sensors["cInBG3303"];
+
+ #TRO406.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
+ #TRO406.stInBarcodeReader.Settings.tTimeout := T#5s;
+
+ #arCognexInterface["cScannerBX4101"].xInCamTriggerReady := "bx4101-TriggerReady";
+ #arCognexInterface["cScannerBX4101"].xInCamTriggerAck := "bx4101-TriggerAck";
+ #arCognexInterface["cScannerBX4101"].xInCamResultsAvailable := "bx4101-Results Available";
+ #arCognexInterface["cScannerBX4101"].xInCamGeneralFault := "bx4101-General Fault";
+ #arCognexInterface["cScannerBX4101"].hwInCamInspectionResults := "BX4101~Ergebnisse_–_64_Bytes_1";
+
+ #TRO406.stInPriorityManager.xReleaseOk := TRUE; //keine Vorfahrtsregelung notwendig
+
+
+
+ #TRO406(nInMainTroNo := "cMainTro406",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO406, //todo:Dieser TRO kann aufhören etwas loszuschicken, wenn alle Stationen voll sind, weil wir dann nur noch sinnlos rotieren und immer wieder probieren
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #arCognexInterface["cScannerBX4101"],
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_2.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_2.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_3.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_3.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO406,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro406"],
+ xOutStopper1 => "MB3300");
+
+ "bx4101-TriggerEnable" := #arCognexInterface["cScannerBX4101"].xOutCamTriggerEnable;
+ "bx4101-Trigger" := #arCognexInterface["cScannerBX4101"].xOutCamTrigger;
+ "bx4101-ResultsAck" := #arCognexInterface["cScannerBX4101"].xOutCamResultsAck;
+
+ REGION Carr_Glob_Correction
+ "FC_CARR_GLOB_CORRECTION"(xInStart := #TRO406.xOutCorrection, //Führe Korrektur aus
+ nInBarcodeScan := #TRO406.nBarcodeResult,
+ nInStation := 0,
+ arOutEventLogInfo => #arDummyEventCorrectionInfo,
+ InOutCarrierExpect := "DB_JamArea4003".stJam4003_2.arCarrier[1]);
+ END_REGION
+
+ REGION AMR Management Schnittstelle
+ IF #TRO406.xOutNewScan THEN
+ "DB_Handshake".str_TROScan.udt_InTro406Scan.nBarcode := #TRO406.nOutScanResult;
+ END_IF;
+
+ IF #TRO406.nState = 2000 OR #TRO406.nState = 1500 THEN
+ "DB_Handshake".str_TROs.udt_TRO406.udt_State.xReady := TRUE;
+ ELSE
+ "DB_Handshake".str_TROs.udt_TRO406.udt_State.xReady := FALSE;
+ END_IF;
+ END_REGION
+
+ END_REGION
+
+ REGION TRO 407 (1Sep1Switch) + Scanner (BX4102)
+ #TRO407.stInSeparator1.Settings.nSeparatorNo := "cSep407.1";
+ #TRO407.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO407.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO407.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO407.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO407.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO407.stInSeparator1.Settings.xPluggedScanner := TRUE;
+ #TRO407.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3304"];
+ #TRO407.stInSenJam2 := "DB_Inputs".Sensors["cInBG3311"];
+ #TRO407.stInSenJam3 := "DB_Inputs".Sensors["cInBG3322"];
+
+ #TRO407.stInSwitch1.Settings.nSwitchNo := "cSwi407.1";
+ #TRO407.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
+ #TRO407.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
+ #TRO407.stInSwitch1.Settings.tTransitEx := T#5s;
+ #TRO407.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
+
+ #TRO407.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
+ #TRO407.stInBarcodeReader.Settings.tTimeout := T#5s;
+
+ #arCognexInterface["cScannerBX4102"].xInCamTriggerReady := "bx4102-TriggerReady";
+ #arCognexInterface["cScannerBX4102"].xInCamTriggerAck := "bx4102-TriggerAck";
+ #arCognexInterface["cScannerBX4102"].xInCamResultsAvailable := "bx4102-Results Available";
+ #arCognexInterface["cScannerBX4102"].xInCamGeneralFault := "bx4102-General Fault";
+ #arCognexInterface["cScannerBX4102"].hwInCamInspectionResults := "BX4102~Ergebnisse_–_64_Bytes_1";
+
+ #TRO407.stInSettings.xPrioDir2 := TRUE;
+ #TRO407(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO407.TroIn,
+ stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO407.TroOut,
+ nInMainTroNo := "cMainTro407",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO407,
+ xInCarouselRun1 := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO407,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #arCognexInterface["cScannerBX4102"],
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_3.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_3.stData,
+ arInOutJamExit2 := "DB_JamArea4004".stJam4004_1.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4004".stJam4004_1.stData,
+ arInOutJamExit3 := "DB_JamArea4003".stJam4003_4.arCarrier,
+ stInOutJamExit3 := "DB_JamArea4003".stJam4003_4.stData,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro407"],
+ xOutStopper1 => "MB3304",
+ xOutSw1ExTo3 => "MB3306");
+
+ "bx4102-TriggerEnable" := #arCognexInterface["cScannerBX4102"].xOutCamTriggerEnable;
+ "bx4102-Trigger" := #arCognexInterface["cScannerBX4102"].xOutCamTrigger;
+ "bx4102-ResultsAck" := #arCognexInterface["cScannerBX4102"].xOutCamResultsAck;
+
+ REGION Carr_Glob_Correction
+ "FC_CARR_GLOB_CORRECTION"(xInStart := #TRO407.xOutCorrection, //Führe Korrektur aus
+ nInBarcodeScan := #TRO407.nBarcodeResult,
+ nInStation := 0,
+ arOutEventLogInfo => #arDummyEventCorrectionInfo,
+ InOutCarrierExpect := "DB_JamArea4003".stJam4003_3.arCarrier[1]);
+ END_REGION
+
+ REGION Direction
+ "FC_Direction"(nInSwitchNo := "cSwi407.1",
+ nOutDirection => #TRO407.nInDirection,
+ InOutCarrier := "DB_JamArea4003".stJam4003_3.arCarrier[1]);
+ END_REGION
+
+ REGION Recirce
+ IF #TRO407.nState = 2400 AND #TRO407.fbStateManager.tOutTimeInStep > T#15s THEN //Steckt in CheckJam fest, weil kein Platz in der Station + Zeit vergangen
+ "DB_JamArea4003".stJam4003_3.arCarrier[1].nDestination := "cDestRecirc"; // Ziel zum Rotieren um nicht zu Blockieren
+ #TRO407.nState := 2000; //Hole nochmal die Direction
+ END_IF;
+
+ END_REGION
+
+ REGION Send DUM to Fortna WCS
+ IF #TRO407.xOutBookedDir1 THEN
+ "FC_Send_GOHDUM"(sInPLCID := "cPLCID",
+ nInBarcode := #TRO407.stOutLastCarrier.nBarcode,
+ sInDecisionPoint := 'GOH.Decant.01',
+ sInActionTaken := '2', //todo? Am besten eine Konstantentabelle anlegen aus Infos von Spezifikation
+ nReasonCode := 1, //todo?
+ FIFO := "DB_LGF_FIFO_CommWCSBL",
+ BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
+ nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
+ END_IF;
+
+
+ END_REGION
+
+
+ END_REGION
+
+ REGION TRO 408 (Vario)
+ #TRO408.stInSeparator1.Settings.nSeparatorNo := "cSep408.1";
+ #TRO408.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO408.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO408.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO408.stInSeparator1.Settings.tJam := "TimeForSepJam";
+
+ #TRO408.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO408.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO408.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO408.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3310"];
+
+ #TRO408.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO408.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO408.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO408.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO408.stInVario.Settings.tConvEmpty := t#15000ms;//T#8000ms;
+ #TRO408.stInVario.Settings.nCountCarrier := 1;
+ #TRO408.stInVario.Settings.tWaitForStop := T#3s;
+ #TRO408.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+
+ #TRO408.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3312"]; //Finger in Pos
+ #TRO408.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3313"]; // Conveyor full
+ #TRO408.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3327"]; // Jam
+ #TRO408.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3316"]; // MT in Position
+
+ #TRO408.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO408.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO408.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO408.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO408.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ #TRO408(nInMainTroNo := "cMainTro408",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInReset := "cTodoFalse",
+ xInMotorProtection := "FC0061",
+ xInAutomatic := #t_automatik,
+ xInRelease := "DB_TRO_Test".TRO408,
+ arInOutJamEntr := "DB_JamArea4004".stJam4004_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4004".stJam4004_1.stData,
+ arInOutJamFinger := "DB_JamArea4004".stJam4004_2.arCarrier,
+ stInOutJamFinger := "DB_JamArea4004"."stJam4004_2".stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO408,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro408"],
+ xOutStopper => "MB3310",
+ xOutVarioMotor => "MA0061");
+
+
+ END_REGION
+
+ REGION TRO 409 (1Sep)
+ #TRO409.stInSeparator1.Settings.nSeparatorNo := "cSep409.1";
+ #TRO409.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO409.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO409.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO409.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO409.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO409.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO409.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO409.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3321"];
+ #TRO409.stInSenJam2 := "DB_Inputs".Sensors["cInBG3322"];
+
+ #TRO409.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO409.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO409(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO409.TroIn,
+ stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO409.TroOut,
+ nInMainTroNo := "cMainTro409",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO409,
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4005"."stJam4005_1".arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4005".stJam4005_1.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_4.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_4.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO409,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro409"],
+ xOutStopper1 => "MB3321");
+
+ END_REGION
+
+ REGION TRO 410 (1Sep1Switch) + Scanner (BX4104)
+
+ #TRO410.stInSeparator1.Settings.nSeparatorNo := "cSep410.1";
+ #TRO410.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO410.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO410.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO410.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO410.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO410.stInSeparator1.Settings.xPluggedScanner := TRUE;
+ #TRO410.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3363"];
+ #TRO410.stInSenJam2 := "DB_Inputs".Sensors["cInBG3371"];
+ #TRO410.stInSenJam3 := "DB_Inputs".Sensors["cInBG3382"];
+
+ #TRO410.stInSwitch1.Settings.nSwitchNo := "cSwi410.1";
+ #TRO410.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
+ #TRO410.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
+ #TRO410.stInSwitch1.Settings.tTransitEx := T#5s;
+ #TRO410.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
+
+ #TRO410.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
+ #TRO410.stInBarcodeReader.Settings.tTimeout := T#5s;
+
+ #arCognexInterface["cScannerBX4104"].xInCamTriggerReady := "bx4104-TriggerReady";
+ #arCognexInterface["cScannerBX4104"].xInCamTriggerAck := "bx4104-TriggerAck";
+ #arCognexInterface["cScannerBX4104"].xInCamResultsAvailable := "bx4104-Results Available";
+ #arCognexInterface["cScannerBX4104"].xInCamGeneralFault := "bx4104-General Fault";
+ #arCognexInterface["cScannerBX4104"].hwInCamInspectionResults := "BX4104~Ergebnisse_–_64_Bytes_1";
+
+ #TRO410.stInSettings.xPrioDir2 := TRUE;
+
+ #TRO410(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO410.TroIn,
+ stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO410.TroOut,
+ nInMainTroNo := "cMainTro410",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO410,
+ xInCarouselRun1 := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO410,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #arCognexInterface["cScannerBX4104"],
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_4.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_4.stData,
+ arInOutJamExit2 := "DB_JamArea4006".stJam4006_1.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4006".stJam4006_1.stData,
+ arInOutJamExit3 := "DB_JamArea4003".stJam4003_5.arCarrier,
+ stInOutJamExit3 := "DB_JamArea4003".stJam4003_5.stData,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro410"],
+ xOutStopper1 => "MB3363",
+ xOutSw1ExTo3 => "MB3366");
+
+
+ "bx4104-TriggerEnable" := #arCognexInterface["cScannerBX4104"].xOutCamTriggerEnable;
+ "bx4104-Trigger" := #arCognexInterface["cScannerBX4104"].xOutCamTrigger;
+ "bx4104-ResultsAck" := #arCognexInterface["cScannerBX4104"].xOutCamResultsAck;
+
+ REGION Carr_Glob_Correction
+ "FC_CARR_GLOB_CORRECTION"(xInStart := #TRO410.xOutCorrection, //Führe Korrektur aus
+ nInBarcodeScan := #TRO410.nBarcodeResult,
+ nInStation := 0,
+ arOutEventLogInfo => #arDummyEventCorrectionInfo,
+ InOutCarrierExpect := "DB_JamArea4003".stJam4003_4.arCarrier[1]);
+ END_REGION
+
+ REGION Direction
+ "FC_Direction"(nInSwitchNo := "cSwi410.1",
+ nOutDirection => #TRO410.nInDirection,
+ InOutCarrier := "DB_JamArea4003".stJam4003_4.arCarrier[1]);
+ END_REGION
+
+ REGION Recirce
+ IF #TRO410.nState = 2400 AND #TRO410.fbStateManager.tOutTimeInStep > T#15s THEN //Steckt in CheckJam fest, weil kein Platz in der Station + Zeit vergangen
+ "DB_JamArea4003".stJam4003_4.arCarrier[1].nDestination := "cDestRecirc"; // Ziel zum Rotieren um nicht zu Blockieren
+ #TRO410.nState := 2000; //Hole nochmal die Direction
+ END_IF;
+
+ END_REGION
+
+ REGION Send DUM to Fortna WCS
+ IF #TRO410.xOutBookedDir1 THEN
+ "FC_Send_GOHDUM"(sInPLCID := "cPLCID",
+ nInBarcode := #TRO410.stOutLastCarrier.nBarcode,
+ sInDecisionPoint := 'GOH.Decant.01',
+ sInActionTaken := '3', //todo? Am besten eine Konstantentabelle anlegen aus Infos von Spezifikation
+ nReasonCode := 1, //todo?
+ FIFO := "DB_LGF_FIFO_CommWCSBL",
+ BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
+ nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
+ END_IF;
+
+
+ END_REGION
+
+ END_REGION
+
+ REGION TRO 411 (Vario)
+ #TRO411.stInSeparator1.Settings.nSeparatorNo := "cSep411.1";
+ #TRO411.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO411.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO411.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO411.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO411.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO411.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO411.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO411.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3370"];
+
+ #TRO411.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO411.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO411.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO411.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO411.stInVario.Settings.tConvEmpty := T#15000ms;
+ #TRO411.stInVario.Settings.nCountCarrier := 1;
+ #TRO411.stInVario.Settings.tWaitForStop := T#3s;
+
+
+ #TRO411.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO411.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO411.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3372"]; // Finger in Pos
+ #TRO411.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3373"]; // Conveyor full
+ #TRO411.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3396"]; // Jam
+ #TRO411.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3376"]; // Mt in Position;
+
+ #TRO411.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ #TRO411(nInMainTroNo := "cMainTro411",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO411,
+ xInMotorProtection := "FC0063",
+ xInAutomatic := #t_automatik,
+ arInOutJamEntr := "DB_JamArea4006".stJam4006_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4006".stJam4006_1.stData,
+ arInOutJamFinger := "DB_JamArea4006".stJam4006_2.arCarrier,
+ stInOutJamFinger := "DB_JamArea4006".stJam4006_2.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO411,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro411"],
+ xOutStopper => "MB3370",
+ xOutVarioMotor => "MA0063");
+
+ (* REGION Barcode-Reader BX4105
+ #arCognexInterface["cScannerBX4105"].xInCamTriggerReady := "bx4105-TriggerReady";
+ #arCognexInterface["cScannerBX4105"].xInCamTriggerAck := "bx4105-TriggerAck";
+ #arCognexInterface["cScannerBX4105"].xInCamResultsAvailable := "bx4105-Results Available";
+ #arCognexInterface["cScannerBX4105"].xInCamGeneralFault := "bx4105-General Fault";
+ #arCognexInterface["cScannerBX4105"].hwInCamInspectionResults := "BX4105~Ergebnisse_–_64_Bytes_1";
+
+ #fbBarcodeReaderBX4105.stInSettings.xActivateCheckASCI := TRUE;
+ #fbBarcodeReaderBX4105.stInSettings.tTimeout := T#5s; //T#5s zum Testen
+
+ IF #fbBarcodeReaderBX4105.xOutReadyForNewScan AND "DB_Inputs".Sensors["cInBG3374"].xDirectEdgePos THEN
+ #xHandshakeScan4105 := FALSE;
+ #xStartScan4105 := TRUE;
+ END_IF;
+
+ IF #fbBarcodeReaderBX4105.xOutReadingDone THEN
+ #nBarcodeReaderBX4105_Result := LINT_TO_DINT(#fbBarcodeReaderBX4105.#nOutBarcode);
+ #xHandshakeScan4105 := TRUE;
+ #xStartScan4105 := FALSE;
+ END_IF;
+
+ #fbBarcodeReaderBX4105(xInHWError := false, // todo
+ xInStartReading := #xStartScan4105,
+ xInHandshakeDone := #xHandshakeScan4105,
+ stInOutInterface := #arCognexInterface["cScannerBX4105"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHMI := #stBarcodeReaderDummy);
+
+ "bx4105-TriggerEnable" := #arCognexInterface["cScannerBX4105"].xOutCamTriggerEnable;
+ "bx4105-Trigger" := #arCognexInterface["cScannerBX4105"].xOutCamTrigger;
+ "bx4105-ResultsAck" := #arCognexInterface["cScannerBX4105"].xOutCamResultsAck;
+
+ END_REGION *)
+
+
+ END_REGION
+
+ REGION TRO 412 (1Sep)
+ #TRO412.stInSeparator1.Settings.nSeparatorNo := "cSep412.1";
+ #TRO412.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO412.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO412.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO412.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO412.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO412.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO412.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO412.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3381"];
+ #TRO412.stInSenJam2 := "DB_Inputs".Sensors["cInBG3382"];
+
+ #TRO412.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO412.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO412(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO412.TroIn,
+ stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO412.TroOut,
+ nInMainTroNo := "cMainTro412",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO412,
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4007".stJam4007_1.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4007".stJam4007_1.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_5.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_5.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO412,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro412"],
+ xOutStopper1 => "MB3381");
+ END_REGION
+
+ REGION TRO 413(1Sep1Switch)+Scanner(BX4106)
+
+ #TRO413.stInSeparator1.Settings.nSeparatorNo := "cSep413.1";
+ #TRO413.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO413.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO413.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO413.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO413.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO413.stInSeparator1.Settings.xPluggedScanner := TRUE;
+ #TRO413.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3430"];
+ #TRO413.stInSenJam2 := "DB_Inputs".Sensors["cInBG3431"];
+ #TRO413.stInSenJam3 := "DB_Inputs".Sensors["cInBG3450"];
+
+ #TRO413.stInSwitch1.Settings.nSwitchNo := "cSwi413.1";
+ #TRO413.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
+ #TRO413.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
+ #TRO413.stInSwitch1.Settings.tTransitEx := T#5s;
+ #TRO413.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
+
+ #TRO413.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
+ #TRO413.stInBarcodeReader.Settings.tTimeout := T#5s;
+
+ #arCognexInterface["cScannerBX4106"].xInCamTriggerReady := "bx4106-TriggerReady";
+ #arCognexInterface["cScannerBX4106"].xInCamTriggerAck := "bx4106-TriggerAck";
+ #arCognexInterface["cScannerBX4106"].xInCamResultsAvailable := "bx4106-Results Available";
+ #arCognexInterface["cScannerBX4106"].xInCamGeneralFault := "bx4106-General Fault";
+ #arCognexInterface["cScannerBX4106"].hwInCamInspectionResults := "BX4106~Ergebnisse_–_64_Bytes_1";
+
+ #TRO413.stInSettings.xPrioDir2 := TRUE;
+ #TRO413(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO413.TroIn,
+ stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO413.TroOut,
+ nInMainTroNo := "cMainTro413",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO413,
+ xInCarouselRun1 := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO413,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #arCognexInterface["cScannerBX4106"],
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_5.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_5.stData,
+ arInOutJamExit2 := "DB_JamArea4008".stJam4008_1.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4008"."stJam4008_1".stData,
+ arInOutJamExit3 := "DB_JamArea4003".stJam4003_6.arCarrier,
+ stInOutJamExit3 := "DB_JamArea4003".stJam4003_6.stData,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro413"],
+ xOutStopper1 => "MB3430",
+ xOutSw1ExTo3 => "MB3432");
+
+ "bx4106-TriggerEnable" := #arCognexInterface["cScannerBX4106"].xOutCamTriggerEnable;
+ "bx4106-Trigger" := #arCognexInterface["cScannerBX4106"].xOutCamTrigger;
+ "bx4106-ResultsAck" := #arCognexInterface["cScannerBX4106"].xOutCamResultsAck;
+
+ REGION Carr_Glob_Correction
+ "FC_CARR_GLOB_CORRECTION"(xInStart := #TRO413.xOutCorrection, //Führe Korrektur aus
+ nInBarcodeScan := #TRO413.nBarcodeResult,
+ nInStation := 0,
+ arOutEventLogInfo => #arDummyEventCorrectionInfo,
+ InOutCarrierExpect := "DB_JamArea4003".stJam4003_5.arCarrier[1]);
+ END_REGION
+
+ REGION Direction
+ "FC_Direction"(nInSwitchNo := "cSwi413.1",
+ nOutDirection => #TRO413.nInDirection,
+ InOutCarrier := "DB_JamArea4003".stJam4003_5.arCarrier[1]);
+
+ END_REGION
+
+ REGION Recirce
+ IF #TRO413.nState = 2400 AND #TRO413.fbStateManager.tOutTimeInStep > T#15s THEN //Steckt in CheckJam fest, weil kein Platz in der Station + Zeit vergangen
+ "DB_JamArea4003".stJam4003_5.arCarrier[1].nDestination := "cDestRecirc"; // Ziel zum Rotieren um nicht zu Blockieren
+ #TRO413.nState := 2000; //Hole nochmal die Direction
+ END_IF;
+
+ END_REGION
+
+ REGION Send DUM to Fortna WCS
+ IF #TRO413.xOutBookedDir1 THEN
+ "FC_Send_GOHDUM"(sInPLCID := "cPLCID",
+ nInBarcode := #TRO413.stOutLastCarrier.nBarcode,
+ sInDecisionPoint := 'GOH.Decant.01',
+ sInActionTaken := '4', //todo? Am besten eine Konstantentabelle anlegen aus Infos von Spezifikation
+ nReasonCode := 1, //todo?
+ FIFO := "DB_LGF_FIFO_CommWCSBL",
+ BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
+ nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
+ END_IF;
+
+
+ END_REGION
+
+ END_REGION
+
+ REGION TRO 414 (Vario)
+ #TRO414.stInSeparator1.Settings.nSeparatorNo := "cSep414.1";
+ #TRO414.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO414.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO414.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO414.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO414.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO414.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO414.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO414.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3440"];
+
+ #TRO414.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO414.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO414.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO414.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO414.stInVario.Settings.tConvEmpty := T#15000ms;
+ #TRO414.stInVario.Settings.nCountCarrier := 1;
+ #TRO414.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO414.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO414.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO414.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3442"]; //Finger in Pos
+ #TRO414.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3443"]; // Conveyor full
+ #TRO414.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3446"]; // Carr in Pos
+ #TRO414.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3437"]; // Jam
+
+ #TRO414.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ #TRO414(nInMainTroNo := "cMainTro414",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO414,
+ xInMotorProtection := "FC0065",
+ xInAutomatic := #t_automatik,
+ arInOutJamEntr := "DB_JamArea4008".stJam4008_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4008".stJam4008_1.stData,
+ arInOutJamFinger := "DB_JamArea4008".stJam4008_2.arCarrier,
+ stInOutJamFinger := "DB_JamArea4008".stJam4008_2.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO414,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro414"],
+ xOutStopper => "MB3440",
+ xOutVarioMotor => "MA0065");
+ // xOutVarioMotor2 => "MA0066");
+
+ (* REGION Barcode-Reader BX4107
+ #arCognexInterface["cScannerBX4107"].xInCamTriggerReady := "bx4107-TriggerReady";
+ #arCognexInterface["cScannerBX4107"].xInCamTriggerAck := "bx4107-TriggerAck";
+ #arCognexInterface["cScannerBX4107"].xInCamResultsAvailable := "bx4107-Results Available";
+ #arCognexInterface["cScannerBX4107"].xInCamGeneralFault := "bx4107-General Fault";
+ #arCognexInterface["cScannerBX4107"].hwInCamInspectionResults := "BX4107~Ergebnisse_–_64_Bytes_1";
+
+ #fbBarcodeReaderBX4107.stInSettings.xActivateCheckASCI := TRUE;
+ #fbBarcodeReaderBX4107.stInSettings.tTimeout := T#5s; //T#5s zum Testen
+
+ IF #fbBarcodeReaderBX4107.xOutReadyForNewScan AND "DB_Inputs".Sensors["cInBG3444"].xDirectEdgePos THEN
+ #xHandshakeScan4107 := FALSE;
+ #xStartScan4107 := TRUE;
+ END_IF;
+
+ IF #fbBarcodeReaderBX4107.xOutReadingDone THEN
+ #nBarcodeReaderBX4107_Result := LINT_TO_DINT(#fbBarcodeReaderBX4107.#nOutBarcode);
+ #xHandshakeScan4107 := TRUE;
+ #xStartScan4107 := FALSE;
+ END_IF;
+
+ #fbBarcodeReaderBX4107(xInHWError := false, // todo
+ xInStartReading := #xStartScan4107,
+ xInHandshakeDone := #xHandshakeScan4107,
+ stInOutInterface := #arCognexInterface["cScannerBX4107"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHMI := #stBarcodeReaderDummy);
+
+ "bx4107-TriggerEnable" := #arCognexInterface["cScannerBX4107"].xOutCamTriggerEnable;
+ "bx4107-Trigger" := #arCognexInterface["cScannerBX4107"].xOutCamTrigger;
+ "bx4107-ResultsAck" := #arCognexInterface["cScannerBX4107"].xOutCamResultsAck;
+
+ END_REGION *)
+
+
+ END_REGION
+
+ REGION TRO 415 (1Sep)
+ #TRO415.stInSeparator1.Settings.nSeparatorNo := "cSep415.1";
+ #TRO415.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO415.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO415.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO415.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO415.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO415.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO415.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO415.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3451"];
+ #TRO415.stInSenJam2 := "DB_Inputs".Sensors["cInBG3450"];
+
+ #TRO415.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO415.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO415(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO415.TroIn,
+ stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO415.TroOut,
+ nInMainTroNo := "cMainTro415",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO415,
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4009".stJam4009_1.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4009".stJam4009_1.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_6.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_6.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO415,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro415"],
+ xOutStopper1 => "MB3451");
+
+ END_REGION
+
+ REGION TRO 416 (1Sep) + Beladeprüfung
+
+ #TRO416.stInSeparator1.Settings.nSeparatorNo := "cSep416.1";
+ #TRO416.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO416.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO416.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO416.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO416.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO416.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO416.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO416.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3435"];
+ #TRO416.stInSenJam2 := "DB_Inputs".Sensors["cInBG3433"];
+
+ #TRO416.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ IF "DB_JamArea4003".stJam4003_6.arCarrier[1].bStatus.%X0 AND "DB_JamArea4003".stJam4003_6.arCarrier[1].nDestination <> "cDestRecirc" THEN
+ "DB_JamArea4003".stJam4003_6.arCarrier[1].nDestination := "cDestLeaveAmr";
+ END_IF;
+
+ #TRO416(nInMainTroNo := "cMainTro416",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO416,
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_6.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_6.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_7.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_7.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO416,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro416"],
+ xOutStopper1 => "MB3435");
+
+
+ END_REGION
+
+ REGION TRO 417 (1Sep)
+
+ #TRO417.stInSeparator1.Settings.nSeparatorNo := "cSep417.1";
+ #TRO417.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Long";
+ #TRO417.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO417.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO417.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO417.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO417.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO417.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO417.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3383"];
+ #TRO417.stInSenJam2 := "DB_Inputs".Sensors["cInBG3367"];
+
+ #TRO417(stInPriorityManager := "DB_Prozessdaten".stPriorityManager.udt_TRO417.TroIn,
+ stOutPriorityManager => "DB_Prozessdaten".stPriorityManager.udt_TRO417.TroOut,
+ nInMainTroNo := "cMainTro417",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO417,
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_7.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_7.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_8.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_8.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO417,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro417"],
+ xOutStopper1 => "MB3383");
+
+ END_REGION
+
+ REGION TRO 418 (Vario)
+
+ #TRO418.stInSeparator1.Settings.nSeparatorNo := "cSep418.1";
+ #TRO418.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO418.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO418.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO418.stInSeparator1.Settings.tDelayToNextItem := T#5s;
+ #TRO418.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO418.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO418.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO418.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO418.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3391"];
+
+ #TRO418.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO418.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO418.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO418.stInVario.Settings.tWaitForJog := T#300ms;
+ #TRO418.stInVario.Settings.tConvEmpty := T#20000ms;
+ #TRO418.stInVario.Settings.nCountCarrier := 1;
+ #TRO418.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO418.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+
+ #TRO418.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO418.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3393"]; //Finger in Pos
+ #TRO418.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3425"]; // Conveyor full
+ #TRO418.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3264"]; // Jam detector
+ #TRO418.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3392"]; // MT in Pos
+
+ #TRO418.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ #TRO418.stInSettings.xIsBorner := TRUE;
+
+ #TRO418(nInMainTroNo := "cMainTro418",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInAutomatic := #t_automatik,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO418,
+ xInMotorProtection := "FC0074",
+ arInOutJamEntr := "DB_JamArea4010".stJam4010_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4010".stJam4010_1.stData,
+ arInOutJamFinger := "DB_JamArea4011".stJam4011_1.arCarrier,
+ stInOutJamFinger := "DB_JamArea4011".stJam4011_1.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO418,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro418"],
+ xOutStopper => "MB3391",
+ xOutVarioMotor => "MA0074");
+
+
+
+ END_REGION
+
+ REGION !!!!!! TRO 419 (1Sep) GIBT NICHT MEHR!!!!!!!
+
+ // #TRO419.stInSeparator1.Settings.nSeparatorNo := "cSep419.1";
+ // #TRO419.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ // #TRO419.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ // #TRO419.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ // #TRO419.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ // #TRO419.stInSeparator1.Settings.xPluggedJam := TRUE;
+ // #TRO419.stInSeparator1.Settings.xPluggedPart := FALSE;
+ // #TRO419.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ // #TRO419.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3424"];
+ // #TRO419.stInSenJam2 := "DB_Inputs".Sensors["cInBG3250"];
+
+ // #TRO419.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ // #TRO419(nInMainTroNo := "cMainTro419",
+ // xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ // xInAllRdyToStart := TRUE,
+ // xInCancel := "cTodoFalse",
+ // xInRelease := "DB_TRO_Test".TRO419, // todooooo "DI0036" AND "DI0037", //Brandschutz tor offen + Brandschutztor kein Fehler (NC oder NO signal?)
+ // xInCarouselRun := TRUE,
+ // stInOutMachineState := #stInOutControlUnitCabinet,
+ // stInOutCognexInterface := #stCognexInterfaceDummy,
+ // arInOutJamEntr1 := "DB_JamArea4010".stJam4010_2.arCarrier,
+ // stInOutJamEntr1 := "DB_JamArea4010".stJam4010_2.stData,
+ // arInOutJamExit2 := "DB_JamArea4011".stJam4011_1.arCarrier,
+ // stInOutJamExit2 := "DB_JamArea4011".stJam4011_1.stData,
+ // stInOutHMI := "DB_Interface_HMI".stTRO.TRO419,
+ // nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro419"],
+ // xOutStopper1 => "MB3424");
+
+ END_REGION
+
+ REGION TRO 420 (Vario)
+ #TRO420.stInSeparator1.Settings.nSeparatorNo := "cSep420.1";
+ #TRO420.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO420.stInSeparator1.Settings.tHandlingTime := t#400ms;
+ #TRO420.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO420.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO420.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO420.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO420.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO420.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3250"];
+
+ #TRO420.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO420.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO420.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3253"]; //Finger in Pos
+ #TRO420.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3256"]; // Conveyor full
+ #TRO420.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3251"]; // Jam detector, fehlt!
+ #TRO420.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3255"]; // MT in Pos
+
+ #TRO420.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO420.stInVario.Settings.tWaitForJog := T#300ms;
+ #TRO420.stInVario.Settings.tConvEmpty := T#50000ms;
+ #TRO420.stInVario.Settings.nCountCarrier := 1;
+ #TRO420.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO420.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO420.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO420.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ #stJamDataLeaveControl.Config.nCapacitySet := 1;
+
+ #TRO420(nInMainTroNo := "cMainTro420",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInAutomatic := #t_automatik,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO420,
+ xInMotorProtection := "FC0072",
+ arInOutJamEntr := "DB_JamArea4011".stJam4011_1.arCarrier,
+ stInOutJamEntr := "DB_JamArea4011".stJam4011_1.stData,
+ arInOutJamFinger := #arStCarrierLeaveControl,//JAM Übergabe CPU UH01!
+ stInOutJamFinger := #stJamDataLeaveControl,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO420,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro420"],
+ xOutStopper => "MB3250",
+ xOutVarioMotor => "MA0072");
+
+ END_REGION
+
+ REGION TRO 421 (Vario)
+ #TRO421.stInSeparator1.Settings.nSeparatorNo := "cSep421.1";
+ #TRO421.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO421.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO421.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO421.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO421.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO421.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO421.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO421.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3326"];
+
+ #TRO421.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO421.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO421.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3315"]; //Finger in Pos
+ #TRO421.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3317"]; // Conveyor full
+ #TRO421.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3324"]; // MT in Position
+ #TRO421.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3320"]; // Jam Detector
+
+ // #TRO421.stInVario.stSenUnloadPos := "DB_Inputs".Sensors["cInBG3314"]; //Unload Position
+ // #TRO421.stInVario.xButton := "SF0025"; // Release Button
+
+ #TRO421.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO421.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO421.stInVario.Settings.tConvEmpty := T#30000ms;
+ #TRO421.stInVario.Settings.nCountCarrier := 1;
+ #TRO421.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO421.stInVario.Settings.xJamSenDelayActive := TRUE;
+ #TRO421.stInVario.Settings.tJamSenDelay := T#2s;
+
+ #TRO421.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO421.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO421.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+
+ #TRO421.fbConvVario.xBeladenError := "DB_Inputs".Sensors["cInBG3325"].xDirectSensor;
+
+ #TRO421(nInMainTroNo := "cMainTro421",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInAutomatic := #t_automatik,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO421,
+ xInMotorProtection := "FC0062",
+ stInStationSensor:="DB_Inputs".Sensors["cInBG3314"],
+ xInReleaseStation:= #"rTrig_Workstation 1".CLK,
+ arInOutJamEntr := "DB_JamArea4004".stJam4004_2.arCarrier,
+ stInOutJamEntr := "DB_JamArea4004".stJam4004_2.stData,
+ arInOutJamFinger := "DB_JamArea4005".stJam4005_1.arCarrier,
+ stInOutJamFinger := "DB_JamArea4005".stJam4005_1.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO421,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro421"],
+ xOutStopper => "MB3326",
+ xOutVarioMotor => "MA0062");
+
+
+
+ REGION Barcode-Reader BX4103
+
+ #arCognexInterface["cScannerBX4103"].xInCamTriggerReady := "bx4103-TriggerReady";
+ #arCognexInterface["cScannerBX4103"].xInCamTriggerAck := "bx4103-TriggerAck";
+ #arCognexInterface["cScannerBX4103"].xInCamResultsAvailable := "bx4103-Results Available";
+ #arCognexInterface["cScannerBX4103"].xInCamGeneralFault := "bx4103-General Fault";
+ #arCognexInterface["cScannerBX4103"].hwInCamInspectionResults := "BX4103~Ergebnisse_–_64_Bytes_1";
+
+ #fbBarcodeReaderBX4103.stInSettings.xActivateCheckASCI := TRUE;
+ #fbBarcodeReaderBX4103.stInSettings.tTimeout := T#5s; //T#5s zum Testen
+
+ #TRO421.fbConvVario.xReadyForScan := #fbBarcodeReaderBX4103.xOutReadyForNewScan;
+ #TRO421.fbConvVario.xReadingDone := #fbBarcodeReaderBX4103.xOutReadingDone;
+
+ (* IF #TRO421.fbConvVario.xStartScanBarcode(* "DB_Inputs".Sensors["cInBG3314"].xDirectEdgePos *)THEN
+ #xHandshakeScanb4103 := FALSE;
+ #xStartScan4103 := TRUE;
+ END_IF; *)
+
+ IF #fbBarcodeReaderBX4103.xOutReadingDone THEN
+ #TRO421.nBarcodeReader_Result := LINT_TO_DINT(#fbBarcodeReaderBX4103.#nOutBarcode);
+ (* #xHandshakeScanb4103 := NOT #TRO421.fbConvVario.xSationStop (* TRUE *);
+ #xStartScan4103 := FALSE; *)
+ END_IF;
+
+ #fbBarcodeReaderBX4103(xInHWError := false, // todo
+ xInStartReading := #TRO421.fbConvVario.xStartScanBarcode,
+ xInHandshakeDone := #TRO421.fbConvVario.xHandShakeScan,
+ stInOutInterface := #arCognexInterface["cScannerBX4103"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHMI := #stBarcodeReaderDummy);
+
+ "bx4103-TriggerEnable" := #arCognexInterface["cScannerBX4103"].xOutCamTriggerEnable;
+ "bx4103-Trigger" := #arCognexInterface["cScannerBX4103"].xOutCamTrigger;
+ "bx4103-ResultsAck" := #arCognexInterface["cScannerBX4103"].xOutCamResultsAck;
+
+ END_REGION
+
+
+
+ REGION Release and Reset Buttons
+
+ #TRO421.fbConvVario.xResetBeladen := "SF0053";
+ "PF0053" := #TRO421.fbConvVario.xResetLed OR "SF0003";
+
+ #"rTrig_Workstation 1"(CLK := "SF0025"); //Release Button Workstation 1
+
+ END_REGION
+
+ END_REGION
+
+ REGION TRO 422 (Vario)
+ #TRO422.stInSeparator1.Settings.nSeparatorNo := "cSep422.1";
+ #TRO422.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO422.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO422.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO422.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO422.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO422.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO422.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO422.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3397"];
+
+ #TRO422.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO422.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO422.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3375"]; //Finger in Pos
+ #TRO422.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3377"]; // Conveyor full
+ #TRO422.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3384"]; // MT in Position
+ #TRO422.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3380"]; // Jam detector
+
+ // #TRO422.stInVario2.stSenUnloadPos := "DB_Inputs".Sensors["cInBG3374"]; //Unload Position
+ // #TRO422.stInVario2.xButton := "SF0026"; // Release Button
+
+ #TRO422.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO422.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO422.stInVario.Settings.tConvEmpty := T#30000ms;
+ #TRO422.stInVario.Settings.nCountCarrier := 1;
+ #TRO422.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO422.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO422.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO422.stInVario.Settings.xJamSenDelayActive := TRUE;
+ #TRO422.stInVario.Settings.tJamSenDelay := T#2s;
+
+ #TRO422.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+ #TRO422.fbConvVario.xBeladenError := "DB_Inputs".Sensors["cInBG3385"].xDirectSensor;
+
+ #TRO422(nInMainTroNo := "cMainTro422",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInAutomatic := #t_automatik,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO422,
+ xInMotorProtection := "FC0064",
+ stInStationSensor:="DB_Inputs".Sensors["cInBG3374"],
+ xInReleaseStation:=#"rTrig_Workstation 2".CLK,
+ arInOutJamEntr := "DB_JamArea4006".stJam4006_2.arCarrier,
+ stInOutJamEntr := "DB_JamArea4006".stJam4006_2.stData,
+ arInOutJamFinger := "DB_JamArea4007".stJam4007_1.arCarrier,
+ stInOutJamFinger := "DB_JamArea4007".stJam4007_1.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO422,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro422"],
+ xOutStopper => "MB3397",
+ xOutVarioMotor => "MA0064");
+
+
+ REGION Release AND Reset Buttons
+
+ #TRO422.fbConvVario.xResetBeladen := "SF0055";
+ "PF0055" := #TRO422.fbConvVario.xResetLed OR "SF0003";
+ // TO DO
+ #"rTrig_Workstation 2"(CLK := "SF0026"); //Release Button Workstation 2
+
+ END_REGION
+
+ REGION Barcode-Reader BX4105
+
+ #arCognexInterface["cScannerBX4105"].xInCamTriggerReady := "bx4105-TriggerReady";
+ #arCognexInterface["cScannerBX4105"].xInCamTriggerAck := "bx4105-TriggerAck";
+ #arCognexInterface["cScannerBX4105"].xInCamResultsAvailable := "bx4105-Results Available";
+ #arCognexInterface["cScannerBX4105"].xInCamGeneralFault := "bx4105-General Fault";
+ #arCognexInterface["cScannerBX4105"].hwInCamInspectionResults := "BX4105~Ergebnisse_–_64_Bytes_1";
+
+
+ #fbBarcodeReaderBX4105.stInSettings.xActivateCheckASCI := TRUE;
+ #fbBarcodeReaderBX4105.stInSettings.tTimeout := T#5s; //T#5s zum Testen
+
+ #TRO422.fbConvVario.xReadyForScan := #fbBarcodeReaderBX4105.xOutReadyForNewScan;
+ #TRO422.fbConvVario.xReadingDone := #fbBarcodeReaderBX4105.xOutReadingDone;
+
+ (* IF #TRO421.fbConvVario.xStartScanBarcode(* "DB_Inputs".Sensors["cInBG3314"].xDirectEdgePos *)THEN
+ #xHandshakeScanb4103 := FALSE;
+ #xStartScan4103 := TRUE;
+ END_IF; *)
+
+ IF #fbBarcodeReaderBX4105.xOutReadingDone THEN
+ #TRO422.nBarcodeReader_Result := LINT_TO_DINT(#fbBarcodeReaderBX4105.#nOutBarcode);
+ (* #xHandshakeScanb4103 := NOT #TRO422.fbConvVario.xSationStop (* TRUE *);
+ #xStartScan4103 := FALSE; *)
+ END_IF;
+
+ #fbBarcodeReaderBX4105(xInHWError := false, // todo
+ xInStartReading := #TRO422.fbConvVario.xStartScanBarcode,
+ xInHandshakeDone := #TRO422.fbConvVario.xHandShakeScan,
+ stInOutInterface := #arCognexInterface["cScannerBX4105"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHMI := #stBarcodeReaderDummy);
+
+ "bx4105-TriggerEnable" := #arCognexInterface["cScannerBX4105"].xOutCamTriggerEnable;
+ "bx4105-Trigger" := #arCognexInterface["cScannerBX4105"].xOutCamTrigger;
+ "bx4105-ResultsAck" := #arCognexInterface["cScannerBX4105"].xOutCamResultsAck;
+
+ END_REGION
+
+
+
+
+
+
+
+ END_REGION
+
+ REGION TRO 423 (Vario)
+ #TRO423.stInSeparator1.Settings.nSeparatorNo := "cSep423.1";
+ #TRO423.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
+ #TRO423.stInSeparator1.Settings.tHandlingTime := t#200ms;
+ #TRO423.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO423.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO423.stInSeparator1.Settings.xPluggedJam := FALSE;
+ #TRO423.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO423.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO423.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3436"];
+
+ #TRO423.stInSeparator1.Settings.tSenFree := T#1200ms;
+ #TRO423.stInSeparator1.Settings.tSenWait := T#4300ms;
+
+ #TRO423.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3445"]; //Finger in Pos
+ #TRO423.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3447"]; // Conveyor full
+ #TRO423.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3454"]; // MT in Position
+ #TRO423.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3431"]; // Jam detector
+
+ // #TRO414.stInVario2.stSenUnloadPos := "DB_Inputs".Sensors["cInBG3444"]; //Unload Position
+ // #TRO414.stInVario2.xButton := "SF0027"; // Release Button
+
+ #TRO423.stInVario.Settings.xContinousEmptying := FALSE;
+ #TRO423.stInVario.Settings.tWaitForJog := T#400ms;
+ #TRO423.stInVario.Settings.tConvEmpty := T#30000ms;
+ #TRO423.stInVario.Settings.nCountCarrier := 1;
+ #TRO423.stInVario.Settings.tWaitForStop := T#3s;
+
+ #TRO423.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
+ #TRO423.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
+
+ #TRO423.stInVario.Settings.xJamSenDelayActive := TRUE;
+ #TRO423.stInVario.Settings.tJamSenDelay := T#2s;
+
+ #TRO423.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
+ #TRO423.fbConvVario.xBeladenError := "DB_Inputs".Sensors["cInBG3455"].xDirectSensor;
+
+ #TRO423(nInMainTroNo := "cMainTro423",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInAutomatic := #t_automatik,
+ xInReset := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO423,
+ xInMotorProtection := "FC0066",
+ stInStationSensor:="DB_Inputs".Sensors["cInBG3444"],
+ xInReleaseStation:=#"rTrig_Workstation 3".CLK,
+ arInOutJamEntr := "DB_JamArea4008".stJam4008_2.arCarrier,
+ stInOutJamEntr := "DB_JamArea4008".stJam4008_2.stData,
+ arInOutJamFinger := "DB_JamArea4009".stJam4009_1.arCarrier,
+ stInOutJamFinger := "DB_JamArea4009".stJam4009_1.stData,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO423,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro423"],
+ xOutStopper => "MB3436",
+ xOutVarioMotor => "MA0066");
+
+ REGION Barcode-Reader BX4107
+
+ #arCognexInterface["cScannerBX4107"].xInCamTriggerReady := "bx4107-TriggerReady";
+ #arCognexInterface["cScannerBX4107"].xInCamTriggerAck := "bx4107-TriggerAck";
+ #arCognexInterface["cScannerBX4107"].xInCamResultsAvailable := "bx4107-Results Available";
+ #arCognexInterface["cScannerBX4107"].xInCamGeneralFault := "bx4107-General Fault";
+ #arCognexInterface["cScannerBX4107"].hwInCamInspectionResults := "BX4107~Ergebnisse_–_64_Bytes_1";
+
+
+ #fbBarcodeReaderBX4107.stInSettings.xActivateCheckASCI := TRUE;
+ #fbBarcodeReaderBX4107.stInSettings.tTimeout := T#5s; //T#5s zum Testen
+
+ #TRO423.fbConvVario.xReadyForScan := #fbBarcodeReaderBX4107.xOutReadyForNewScan;
+ #TRO423.fbConvVario.xReadingDone := #fbBarcodeReaderBX4107.xOutReadingDone;
+
+ (* IF #TRO421.fbConvVario.xStartScanBarcode(* "DB_Inputs".Sensors["cInBG3314"].xDirectEdgePos *)THEN
+ #xHandshakeScanb4103 := FALSE;
+ #xStartScan4103 := TRUE;
+ END_IF; *)
+
+ IF #fbBarcodeReaderBX4107.xOutReadingDone THEN
+ #TRO423.nBarcodeReader_Result := LINT_TO_DINT(#fbBarcodeReaderBX4107.#nOutBarcode);
+ (* #xHandshakeScanb4103 := NOT #TRO422.fbConvVario.xSationStop (* TRUE *);
+ #xStartScan4103 := FALSE; *)
+ END_IF;
+
+ #fbBarcodeReaderBX4107(xInHWError := false, // todo
+ xInStartReading := #TRO423.fbConvVario.xStartScanBarcode,
+ xInHandshakeDone := #TRO423.fbConvVario.xHandShakeScan,
+ stInOutInterface := #arCognexInterface["cScannerBX4107"],
+ stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
+ stInOutHMI := #stBarcodeReaderDummy);
+
+ "bx4107-TriggerEnable" := #arCognexInterface["cScannerBX4107"].xOutCamTriggerEnable;
+ "bx4107-Trigger" := #arCognexInterface["cScannerBX4107"].xOutCamTrigger;
+ "bx4107-ResultsAck" := #arCognexInterface["cScannerBX4107"].xOutCamResultsAck;
+
+ END_REGION
+
+
+
+ REGION Release AND Reset Buttons
+ // TO DO
+ #TRO423.fbConvVario.xResetBeladen := "SF0057";
+ "PF0057" := #TRO423.fbConvVario.xResetLed OR "SF0003";
+ #"rTrig_Workstation 3"(CLK := "SF0027"); //Release Button Workstation 2
+
+ END_REGION
+
+
+ END_REGION
+
+ REGION TRO 424 (1Sep) vor Behangskontrolle
+
+ #TRO424.stInSeparator1.Settings.nSeparatorNo := "cSep424.1";
+ #TRO424.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
+ #TRO424.stInSeparator1.Settings.tTrailingTime := t#0ms;
+ #TRO424.stInSeparator1.Settings.tHandlingTime := t#0ms;
+ #TRO424.stInSeparator1.Settings.tJam := "TimeForSepJam";
+ #TRO424.stInSeparator1.Settings.xPluggedJam := TRUE;
+ #TRO424.stInSeparator1.Settings.xPluggedPart := FALSE;
+ #TRO424.stInSeparator1.Settings.xPluggedScanner := FALSE;
+ #TRO424.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3400"];
+ #TRO424.stInSenJam2 := "DB_Inputs".Sensors["cInBG3360"];
+
+ #TRO424.stInPriorityManager.xReleaseOk := TRUE; //keine Vorfahrtsregelung notwendig
+
+ #TRO424(nInMainTroNo := "cMainTro424",
+ xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
+ xInAllRdyToStart := TRUE,
+ xInCancel := "cTodoFalse",
+ xInRelease := "DB_TRO_Test".TRO424,
+ xInCarouselRun := #fbCarousel4003.xOutConveyorFullSpeed,
+ stInOutMachineState := #stInOutControlUnitCabinet,
+ stInOutCognexInterface := #stCognexInterfaceDummy,
+ arInOutJamEntr1 := "DB_JamArea4003".stJam4003_8.arCarrier,
+ stInOutJamEntr1 := "DB_JamArea4003".stJam4003_8.stData,
+ arInOutJamExit2 := "DB_JamArea4003".stJam4003_1.arCarrier,
+ stInOutJamExit2 := "DB_JamArea4003".stJam4003_1.stData,
+ stInOutHMI := "DB_Interface_HMI".stTRO.TRO424,
+ nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro424"],
+ xOutStopper1 => "MB3400");
+
+
+ END_REGION
+
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/100_Main/FB_PriorityLogic.scl b/=A01+UH04-KF00/Programmbausteine/100_Main/FB_PriorityLogic.scl
new file mode 100644
index 0000000..18b915d
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/100_Main/FB_PriorityLogic.scl
@@ -0,0 +1,72 @@
+FUNCTION_BLOCK "FB_PriorityLogic"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR
+ fbPrioTRO404_TRO417 { S7_SetPoint := 'False'} : "Fb_PriorityManagerV2";
+ fbPrioTRO407_TRO409 : "Fb_PriorityManagerV2";
+ fbPrioTRO410_TRO412 : "Fb_PriorityManagerV2";
+ fbPrioTRO413_TRO415 : "Fb_PriorityManagerV2";
+ END_VAR
+
+ VAR_TEMP
+ todo : "udt_InterruptParameter";
+ END_VAR
+
+
+BEGIN
+ REGION Priority-Manager
+ REGION Kreuzung TRO404/TRO417
+ #fbPrioTRO404_TRO417(xInQuit := "cTodoFalse",
+ tIn_ReleaseTime1 := T#45s,
+ tIn_ReleaseTime2 := t#15s,
+ xInClearJam := FALSE,
+ udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO404.TroOut,
+ udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO417.TroOut,
+ udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO404.TroIn,
+ udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO417.TroIn,
+ udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO404_TRO417,
+ udt_InterruptParameter := #todo);
+ END_REGION
+
+ REGION Kreuzung TRO407/TRO409
+ #fbPrioTRO407_TRO409(xInQuit := "cTodoFalse",
+ tIn_ReleaseTime1 := T#10s,
+ tIn_ReleaseTime2 := t#10s,
+ xInClearJam := FALSE,
+ udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO409.TroOut,
+ udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO407.TroOut,
+ udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO409.TroIn,
+ udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO407.TroIn,
+ udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO407_TRO409,
+ udt_InterruptParameter := #todo);
+ END_REGION
+
+
+ REGION Kreuzung TRO410/TRO412
+ #fbPrioTRO410_TRO412(xInQuit := "cTodoFalse",
+ tIn_ReleaseTime1 := T#10s,
+ tIn_ReleaseTime2 := t#10s,
+ xInClearJam := FALSE,
+ udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO412.TroOut,
+ udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO410.TroOut,
+ udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO412.TroIn,
+ udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO410.TroIn,
+ udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO410_TRO412,
+ udt_InterruptParameter := #todo);
+ END_REGION
+
+ REGION Kreuzung TRO413/TRO415
+ #fbPrioTRO413_TRO415(xInQuit := "cTodoFalse",
+ tIn_ReleaseTime1 := T#10s,
+ tIn_ReleaseTime2 := t#10s,
+ xInClearJam := FALSE,
+ udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO415.TroOut,
+ udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO413.TroOut,
+ udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO415.TroIn,
+ udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO413.TroIn,
+ udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO413_TRO415,
+ udt_InterruptParameter := #todo);
+ END_REGION
+ END_REGION ;
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/100_Main/fbMain_DB.xml b/=A01+UH04-KF00/Programmbausteine/100_Main/fbMain_DB.xml
new file mode 100644
index 0000000..869c6de
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/100_Main/fbMain_DB.xml
@@ -0,0 +1,241 @@
+
+
+
+
+
+ FB_Main
+ FB
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ fbMain_DB
+
+ 59
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/100_Main/fbPriorityLogic_DB.xml b/=A01+UH04-KF00/Programmbausteine/100_Main/fbPriorityLogic_DB.xml
new file mode 100644
index 0000000..d64633a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/100_Main/fbPriorityLogic_DB.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+ FB_PriorityLogic
+ FB
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ fbPriorityLogic_DB
+
+ 5
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/FB_Blinker.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/FB_Blinker.liblink
new file mode 100644
index 0000000..117a864
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/FB_Blinker.liblink
@@ -0,0 +1,2 @@
+TypeGuid: f8c50fdf-18cb-49d8-bf63-620c65163568
+VersionGuid: fa6b40b5-8048-40b8-9a10-460377c0a038
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/HelperFunctions/FC_DateAsString.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/HelperFunctions/FC_DateAsString.liblink
new file mode 100644
index 0000000..33d8777
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/HelperFunctions/FC_DateAsString.liblink
@@ -0,0 +1,2 @@
+TypeGuid: bc5be256-7a5d-4ae4-aac8-c04ee556905a
+VersionGuid: 34059056-04c6-4b56-b5a2-abd5a842540e
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/HelperFunctions/FC_TimeAsString.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/HelperFunctions/FC_TimeAsString.liblink
new file mode 100644
index 0000000..4c02eeb
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/HelperFunctions/FC_TimeAsString.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 934482b5-e58d-48b7-95c0-95843c18790d
+VersionGuid: 4a99e138-618d-44bb-915f-75873870e021
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/FC_FIFO_Append.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/FC_FIFO_Append.liblink
new file mode 100644
index 0000000..5a66e52
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/FC_FIFO_Append.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 909777d2-e8ca-420e-b3b9-f6ae53af035b
+VersionGuid: b605d468-bdd6-47e4-b7f5-c931cf8b16ae
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/FC_FIFO_GetFirst.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/FC_FIFO_GetFirst.liblink
new file mode 100644
index 0000000..13d5311
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/FC_FIFO_GetFirst.liblink
@@ -0,0 +1,2 @@
+TypeGuid: b6f005ff-2e28-4973-a770-caf1f845319a
+VersionGuid: 5f307c66-66a2-4362-98ee-51660aada83e
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/LGF_FIFO.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/LGF_FIFO.liblink
new file mode 100644
index 0000000..728f390
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/LGF/FIFO/LGF_FIFO.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 165134c6-89ff-4736-8f52-770c0346080b
+VersionGuid: bae66bce-23a3-475d-93bf-65bd96466183
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/StateMain/FB_StateMain.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/StateMain/FB_StateMain.liblink
new file mode 100644
index 0000000..1404c93
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/StateMain/FB_StateMain.liblink
@@ -0,0 +1,2 @@
+TypeGuid: f40dd329-3f8e-45dd-898b-24da6076f332
+VersionGuid: 78bc094a-ba36-410e-bb5c-9dc8345824b9
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/StateManager/FB_StateManager.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/StateManager/FB_StateManager.liblink
new file mode 100644
index 0000000..7ad5bf5
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/100_Common/StateManager/FB_StateManager.liblink
@@ -0,0 +1,2 @@
+TypeGuid: fc79a2eb-31dd-4847-9624-eb660ce10f25
+VersionGuid: cb3fd588-4989-4a4a-a2a6-5529192cbc90
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/110_PROFINET/Barcode-Reader/FB_BarcodeReaderCognex.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/110_PROFINET/Barcode-Reader/FB_BarcodeReaderCognex.liblink
new file mode 100644
index 0000000..2f7ffc9
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/110_PROFINET/Barcode-Reader/FB_BarcodeReaderCognex.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 3342ee0b-33ee-4d32-9746-e58e39123b17
+VersionGuid: 52e3e154-927c-43ca-a9f1-9b6026af3f8a
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/110_PROFINET/Sensors/FB_SensorInput.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/110_PROFINET/Sensors/FB_SensorInput.liblink
new file mode 100644
index 0000000..b1bf6ca
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/110_PROFINET/Sensors/FB_SensorInput.liblink
@@ -0,0 +1,2 @@
+TypeGuid: a35365d7-dff1-4ac5-9689-8750d7467e8e
+VersionGuid: b1b8d1e1-2be4-46f5-8e3b-08cc20f9ff04
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FB_Monitoring.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FB_Monitoring.liblink
new file mode 100644
index 0000000..5349cd9
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FB_Monitoring.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 8024a909-1e3e-4f70-8f13-ffe7958aad3e
+VersionGuid: 2e5c8d6b-fd81-4364-8c85-7c635e9e9be3
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FB_SetAlarmAndLog.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FB_SetAlarmAndLog.liblink
new file mode 100644
index 0000000..8cd8448
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FB_SetAlarmAndLog.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 2d4f98e2-307a-4d8c-ad18-172d395d7189
+VersionGuid: da7f5558-c66c-49f0-982d-1c07a6997146
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FC_GetAlarmNo.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FC_GetAlarmNo.liblink
new file mode 100644
index 0000000..1587c73
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FC_GetAlarmNo.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 888dc75b-b6b6-4900-a239-6d2c867697ea
+VersionGuid: 46cc0419-40ed-460b-a195-d0a08c48c8de
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FC_MRoundINT.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FC_MRoundINT.liblink
new file mode 100644
index 0000000..229ba04
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/FC_MRoundINT.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 60039f0c-6948-419b-9eb0-5d641af2177b
+VersionGuid: 8c5f4bbf-9313-4dc8-ad58-26945063526b
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/dbDataLogBuffer.xml b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/dbDataLogBuffer.xml
new file mode 100644
index 0000000..953ffb4
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/160_Monitoring/dbDataLogBuffer.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ dbDataLogBuffer
+
+ 75
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/FB_TCP_LCOM_TeleHandler.scl b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/FB_TCP_LCOM_TeleHandler.scl
new file mode 100644
index 0000000..6e2bcac
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/FB_TCP_LCOM_TeleHandler.scl
@@ -0,0 +1,623 @@
+FUNCTION_BLOCK "FB_TCP_LCOM_TeleHandler"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ xInGetFirst : Bool; // Holt das erste älteste Telegram aus dem Puffer
+ xInReset : Bool; // Setzt den TeleHandler zurück
+ xInSendTele : Bool; // Das gewünschte Telegram wird versendet
+ stInTelegramSend : "UDT_TelegramData_Send"; // Das Telegram, dass versendet werden soll
+ stInTelegramDefinition : "UDT_TelegramDefinition"; // Telegram-Definition
+ stInTcpTypeConfig : "LCom_typeConfig";
+ END_VAR
+
+ VAR_OUTPUT
+ stOutNewTelegram : "UDT_TelegramData"; // Das erste älteste Telegram, wird mit xInGetFirst geholt
+ xOutConnectionActive : Bool; // Verbindungszustand zum Partner
+ xOutTelegramAvailable : Bool; // Zeigt an, ob ein Telegram zur Verfügung steht
+ xOutError : Bool; // Fehler
+ sOutErrorText : String; // Fehler Text
+ END_VAR
+
+ VAR_IN_OUT
+ xInOutSendTele : Bool;
+ fbInOutSendFIFO : "LGF_FIFO";
+ arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
+ END_VAR
+
+ VAR
+ stTelegramSend { S7_SetPoint := 'False'} : "UDT_TelegramData_Send";
+ xStart : Bool;
+ arTelegramList { S7_SetPoint := 'False'} : Array[0.."TELEGRAM_RECV_LIST_MAX"] of "UDT_TelegramData"; // Telegramliste mit allen aktuellen Telegrammen
+ nTelegramListWrite { S7_SetPoint := 'True'} : DInt := 0; // Index zum Schreiben
+ nTelegramListRead { S7_SetPoint := 'True'} : DInt := 0; // Index zum Lesen
+ fbTeleRecvFifo : "LGF_FIFO";
+ fbTeleSendFifo : "LGF_FIFO";
+ fbTcpComm { S7_SetPoint := 'False'} : "LCom_Communication"; // Aufruf TCP-Baustein // IST MULTIINSTANZ HIER SINNVOLL???
+ stTcpParam : Struct // TCP-Parameter
+ xEnable : Bool; // enables TCP/IP connection
+ xSendRequest : Bool; // triggers a send request
+ xSending : Bool;
+ nRcvLen : UInt; // length of data you want to receive from partner (opt. DBs = 0)
+ nSendLen : UInt; // length of date so send to partner
+ xAdhocMode : Bool; // activate adhoc Mode to receive data with variable len
+ xConnectionEstablished { S7_SetPoint := 'True'} : Bool; // connection to partner established
+ xNdr { S7_SetPoint := 'True'} : Bool; // new data received
+ xDone { S7_SetPoint := 'True'} : Bool; // send request finished successully
+ xBusy : Bool; // block is busy
+ xError : Bool; // error occurred
+ nRcvdLen : UDInt; // length of received data
+ nStatusId : UInt; // error location in block
+ nStatus : Word; // status word from OUC blocks
+ t_TelegramReceiveBuffer : Array[0..#cTelegramLengthReceive] of Byte; // Empfangspuffer
+ t_TelegramSendBuffer : Array[0..#cTelegramLengthSend] of Byte; // Sendepuffer
+ stDiagnosticData : "LCom_typeDiagnostics";
+ stTypeConfig : "LCom_typeConfig";
+ END_STRUCT;
+ stRecvFifoParam : Struct // Recv-Fifo Parameter
+ xEnq : Bool;
+ xDeq : Bool;
+ xReset : Bool;
+ xClear : Bool;
+ nInitItem : String;
+ nMaxElementCount : USInt;
+ sStringIn : String;
+ sStringOut : String;
+ arStringBuffer : Array[1..10] of String;
+ END_STRUCT;
+ stSendFifoParam : Struct // Send-Fifo Parameter
+ xEnq : Bool;
+ xDeq : Bool;
+ xReset : Bool;
+ xClear : Bool;
+ nInitItem : String;
+ nMaxElementCount : USInt;
+ sStringIn : String;
+ sStringOut : String;
+ arStringBuffer : Array[1..100] of String;
+ END_STRUCT;
+ statEdgeGetFirst : Bool; // Flankenmerker GetFirst
+ statEdgeReset : Bool; // Flankenmerker Reset
+ statEdgeSend : Bool; // Flankenmerker Send
+ stTelegramDefinition { S7_SetPoint := 'False'} : "UDT_TelegramDefinition"; // Telegram-Definition
+ stFirstTelegram : "UDT_TelegramData"; // Das erste älteste Telegram
+ sBuildString { S7_SetPoint := 'True'} : String; // String zum Versenden wird hier zusammengestellt
+ nStateConn : Int; // Verbindungszustand TCP
+ sConnectionStatus : String; // Verbindungzustand TCP Text
+ tOnRetryEnable {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Totzeit Verbindung neu aufbauen
+ tOnWatchdogConn {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Überwachungszeit Verbindungsaufbau
+ arAnalyzeBuffer : Array[0..100000] of Byte; // Zwischenpuffer für Parser
+ nAnalyzeBufferLen : UDInt := 0; // Länge des Zwischenpuffer
+ nParseState : Int; // Parse Zustand
+ nLenTelegram : UDInt; // Hilfsvariable Telegrammlänge
+ arRecvdTelegram : Array[0..100000] of Byte; // Das empfangene Telegramm in Bytes
+ xTelegramAvailable { S7_SetPoint := 'True'} : Bool; // Zeigt an, ob ein Telegramm zur Verfügung steht
+ xTestSend : Bool;
+ "Char" : Char;
+ "String" : String[1];
+ fbEventLogSending : "FB_EventLog_Root";
+ fbEventLogReceiving : "FB_EventLog_Root";
+ sLogReceiveMessage : String;
+ sLogRecvSingle : String[1];
+ fTrigSending {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
+ END_VAR
+
+ VAR_TEMP
+ tempEdgeGetFirst : Bool;
+ tempEdgeReset : Bool;
+ tempEdgeSend : Bool;
+ i : DInt;
+ x : UDInt;
+ y : UDInt;
+ p : UDInt;
+ n : UDInt;
+ r : UDInt;
+ RetVal_MoveBlk_RecvdTele : Int;
+ RetVal_MoveBlk_Zwischenpuffer : Int;
+ RetVal_MoveBlk_ZwPu : Int;
+ Laenge : DInt;
+ a : UDInt;
+ RetVal_StartMarkerFound : Bool;
+ RetVal_EndMarkerFound : Bool;
+ strLen : UInt;
+ xSuccess_Append_SendFIFO : Bool;
+ xSuccess_GF_SendFIFO : Bool;
+ sInitialEmptyString : String;
+ j : DInt;
+ stInitialTelegram : "UDT_TelegramData_Send";
+ empty : "UDT_TelegramData_Send";
+ xSuccess : Bool;
+ END_VAR
+
+ VAR CONSTANT
+ cTelegramLengthSend : UDInt := 65535; // Länge des Sendepuffer
+ cTelegramLengthReceive : UDInt := 65535; // Länge des Empfangspuffer
+ cCheckSumLength : UDInt := 10; // Checksumme Länge
+ STATE_NOTCONNECTED : Int := 0; // State: nicht Verbunden
+ STATE_CONNECTED : Int := 1; // State: Verbunden
+ STATE_RECONNECT : Int := 4; // State: Neu verbinden
+ E_TeleParseState_START : Int := 0; // ParseState: Warte auf Startmarker
+ E_TeleParseState_DATA : Int := 1; // ParseState: Analyse Daten
+ END_VAR
+
+
+BEGIN
+ REGION Edges
+ // Flankenerkennung
+ #tempEdgeGetFirst := #xInGetFirst AND NOT #statEdgeGetFirst;
+ #statEdgeGetFirst := #xInGetFirst;
+
+ #tempEdgeReset := #xInReset AND NOT #statEdgeReset;
+ #statEdgeReset := #xInReset;
+
+ #tempEdgeSend := #xInOutSendTele AND NOT #statEdgeSend;
+ #statEdgeSend := #xInOutSendTele;
+
+ END_REGION
+
+ REGION Initialize
+ // Eingangswerte werden umkopiert
+ #stTelegramDefinition.sStartMarker := #stInTelegramDefinition.#sStartMarker;
+ #stTelegramDefinition.nStartMarkerLen := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sStartMarker));
+
+ #stTelegramDefinition.sEndMarker := #stInTelegramDefinition.#sEndMarker;
+ #stTelegramDefinition.nEndMarkerLen := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sEndMarker));
+
+ #stTelegramDefinition.bSeparatorByte := #stInTelegramDefinition.#bSeparatorByte;
+
+ #stTelegramDefinition.sStartMarkerSend := #stInTelegramDefinition.#sStartMarkerSend;
+ #stTelegramDefinition.nStartMarkerLenSend := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sStartMarkerSend));
+
+ #stTelegramDefinition.sEndMarkerSend := #stInTelegramDefinition.#sEndMarkerSend;
+ #stTelegramDefinition.nEndMarkerLenSend := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sEndMarkerSend));
+
+ #stTelegramDefinition.nLength := #stInTelegramDefinition.#nLength;
+
+ #stTelegramDefinition.nTelegramIDDataField := #stInTelegramDefinition.#nTelegramIDDataField;
+ #stTelegramDefinition.xTelegramIDIsNumber := #stInTelegramDefinition.#xTelegramIDIsNumber;
+
+ END_REGION
+
+ REGION Reset
+ // Telehandler rücksetzen
+ IF #tempEdgeReset THEN
+ FOR #i := 0 TO 100000 DO
+ #arAnalyzeBuffer[#i] := 0;
+ END_FOR;
+
+ // #arAnalyzeBuffer := #arEmptyBuffer;
+ #nAnalyzeBufferLen := 0;
+
+ FOR #i := 0 TO "TELEGRAM_RECV_LIST_MAX" DO
+ #arTelegramList[#i].sIDString := '';
+ #arTelegramList[#i].nID := 0;
+ #arTelegramList[#i].xCRC32ValidationResult := FALSE;
+ FOR #j := 1 TO "TELEGRAM_DATA_MAX" DO
+ #arTelegramList[#i].arDataString[#j] := '';
+ END_FOR;
+ #arTelegramList[#i].nDataCount := 0;
+ END_FOR;
+
+ #nTelegramListRead := 0;
+ #nTelegramListWrite := 0;
+
+ // #stFirstTelegram := #stEmptyTelegram;
+ #stFirstTelegram.nDataCount := 0;
+ #stFirstTelegram.nID := 0;
+ #stFirstTelegram.sIDString := '';
+ #stFirstTelegram.xCRC32ValidationResult := FALSE;
+ FOR #i := 1 TO "TELEGRAM_DATA_MAX" DO
+ #stFirstTelegram.arDataString[#i] := '';
+ END_FOR;
+
+ #stSendFifoParam.xClear := TRUE;
+ FOR #i := 0 TO 65535 DO
+ #stTcpParam.t_TelegramSendBuffer[#i] := 0;
+ END_FOR;
+
+ // #stTcpParam.t_TelegramSendBuffer := #arEmptyBuffer;
+
+ ELSE
+ #stSendFifoParam.xClear := FALSE;
+ END_IF;
+
+ END_REGION
+
+ REGION GetFirst
+ IF #tempEdgeGetFirst THEN // Erstes Telegram holen
+ IF (#nTelegramListRead <> #nTelegramListWrite) THEN // Liste ist nicht leer
+ #stFirstTelegram := #arTelegramList[#nTelegramListRead]; // Erstes Telegram schreiben
+
+ #nTelegramListRead := #nTelegramListRead + 1; // Lese-Index inkrementieren
+ IF (#nTelegramListRead > "TELEGRAM_RECV_LIST_MAX") THEN // Lese-Index rücksetzen wenn Max erreicht
+ #nTelegramListRead := 0;
+ END_IF;
+
+ #xTelegramAvailable := (#nTelegramListRead <> #nTelegramListWrite); // Telegramm verfügbar, wenn Indexe ungleich
+ ELSE
+ // #stFirstTelegram := #stEmptyTelegram;
+ #stFirstTelegram.nDataCount := 0;
+ #stFirstTelegram.nID := 0;
+ #stFirstTelegram.sIDString := '';
+ #stFirstTelegram.xCRC32ValidationResult := FALSE;
+ FOR #i := 1 TO "TELEGRAM_DATA_MAX" DO
+ #stFirstTelegram.arDataString[#i] := '';
+ END_FOR;
+ // TODO Error // Fehler erzeugen, weil z.B. FIFO leer ist
+ END_IF;
+ END_IF;
+
+ END_REGION
+
+
+ REGION Parse
+ IF (* #xStart *)(#nStateConn = #STATE_CONNECTED) AND #stTcpParam.xNdr THEN // neue Daten?
+ FOR #p := 0 TO #stTcpParam.nRcvdLen - 1 DO // Alle empfangenen Bytes durchgehen
+ #arAnalyzeBuffer[#nAnalyzeBufferLen] := #stTcpParam.t_TelegramReceiveBuffer[#p]; // Byte[p] von Empfangspuffer in Analysepuffer kopieren
+ #nAnalyzeBufferLen := #nAnalyzeBufferLen + 1; // Pufferlänge inkrementieren
+
+ REGION 0000: ParseState = START
+ // ParseState = Start
+ IF #nParseState = #E_TeleParseState_START THEN // Start-Zustand
+ IF #stTelegramDefinition.nStartMarkerLen > 0 THEN // Start Marker definiert? (>0 bedeutet das einer definiert wurde)
+ IF #nAnalyzeBufferLen >= #stTelegramDefinition.nStartMarkerLen THEN // Wenn die Zeichen im Zwischenpuffer noch geringer sind als die Länge des definierten Startmarkers, dann nichts zu tun, nächstes Zeichen holen --> END_IF
+ #RetVal_StartMarkerFound := "FC_ParseCheckForStart"(bInNewData := #stTcpParam.t_TelegramReceiveBuffer[#p], //Funktion überprüft den Startmarker
+ arInBuffer := #arAnalyzeBuffer,
+ nInBufferLen := #nAnalyzeBufferLen,
+ stInTelegramDefinition := #stTelegramDefinition);
+ IF NOT #RetVal_StartMarkerFound THEN
+ #RetVal_MoveBlk_ZwPu := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := #nAnalyzeBufferLen - 1, SRC_INDEX := 1, DEST_INDEX := 0, DEST => #arAnalyzeBuffer);
+ #nAnalyzeBufferLen := #nAnalyzeBufferLen - 1;
+ ELSE
+ #nParseState := #E_TeleParseState_DATA; //StartMarker gefunden, Zustandswechsel zu Daten
+ END_IF;
+ END_IF;
+ ELSE // Es wurde kein StartMarker definiert / ohne Startmarker
+ #nParseState := #E_TeleParseState_DATA;
+ END_IF;
+ END_IF;
+ END_REGION
+
+ REGION 0001: ParseState = DATA
+ IF #nParseState = #E_TeleParseState_DATA THEN // Daten-Analyse
+ #RetVal_EndMarkerFound := "FC_ParseCheckForEnd"(bInNewData := #stTcpParam.t_TelegramReceiveBuffer[#p], // Funktion überprüft den Endmarker
+ arInBuffer := #arAnalyzeBuffer,
+ nInBufferLen := #nAnalyzeBufferLen,
+ stInTelegramDefinition := #stTelegramDefinition);
+
+ #RetVal_StartMarkerFound := "FC_ParseCheckForStart"(bInNewData := #stTcpParam.t_TelegramReceiveBuffer[#p], //Funktion überprüft den Startmarker
+ arInBuffer := #arAnalyzeBuffer,
+ nInBufferLen := #nAnalyzeBufferLen,
+ stInTelegramDefinition := #stTelegramDefinition);
+
+ IF #RetVal_EndMarkerFound THEN // End-Marker wurde gefunden
+ // reset RecvdTelegram
+ // #arRecvdTelegram := #arEmptyBuffer;
+ FOR #i := 0 TO 100000 DO
+ #arRecvdTelegram[#i] := 0;
+ END_FOR;
+
+ // Telegram aus Puffer rauskopieren ohne die Marker!
+ #nLenTelegram := (#nAnalyzeBufferLen - (#stTelegramDefinition.nStartMarkerLen + #stTelegramDefinition.nEndMarkerLen));
+ #RetVal_MoveBlk_RecvdTele := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := #nLenTelegram, SRC_INDEX := #stTelegramDefinition.nStartMarkerLen, DEST_INDEX := 0, DEST => #arRecvdTelegram);
+
+ // Zwischenpuffer reset
+ FOR #i := 0 TO 100000 DO
+ #arAnalyzeBuffer[#i] := 0;
+ END_FOR;
+
+ // #arAnalyzeBuffer := #arEmptyBuffer;
+ #nAnalyzeBufferLen := 0;
+
+ //Reset die telegramList-Position wo wir die neuen Daten reinschreiben
+ // #arTelegramList[#nTelegramListWrite] := #stEmptyTelegram;
+
+ #arTelegramList[#nTelegramListWrite].nID := 0;
+ #arTelegramList[#nTelegramListWrite].sIDString := '';
+ #arTelegramList[#nTelegramListWrite].xCRC32ValidationResult := FALSE;
+ FOR #i := 1 TO "TELEGRAM_DATA_MAX" DO
+ #arTelegramList[#nTelegramListWrite].arDataString[#i] := '';
+ END_FOR;
+ #arTelegramList[#nTelegramListWrite].nDataCount := 1;
+
+ IF (#stTelegramDefinition.bSeparatorByte <> 0) THEN // Es gibt ein Separator Byte, ansonsten wird davon ausgegangen, dass es alles am Stück ist
+ #x := 0;
+ FOR #y := 0 TO #nLenTelegram DO // Ganzes Telegram durchgehen
+ IF (#arRecvdTelegram[#y] = #stTelegramDefinition.bSeparatorByte) THEN // Wenn das Byte dem Separator-Byte entspricht
+ #x := 0;
+ #arTelegramList[#nTelegramListWrite].nDataCount := #arTelegramList[#nTelegramListWrite].nDataCount + 1; // DataCount inkrementieren, da neues Datenfeld
+ IF (#arTelegramList[#nTelegramListWrite].nDataCount > "TELEGRAM_DATA_MAX") THEN // Fehler abfangen, wenn zu viele Datenfelder im Telegram sind
+ // TODO Error erzeugen
+ EXIT;
+ END_IF;
+ ELSE
+ IF (#x <= "TELEGRAM_DATA_FIELD_MAX") THEN
+ #String := CHAR_TO_STRING((BYTE_TO_CHAR(#arRecvdTelegram[#y])));
+ #arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount] := CONCAT(IN1 := #arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount], IN2 := #String);
+ // #arData_Test[#arTelegramList[#nTelegramListWrite].nDataCount, #x + 1] := #arRecvdTelegram[#y]; // Byte in 2D-Array of Byte schreiben
+ #x := #x + 1;
+ END_IF;
+ END_IF;
+ END_FOR;
+ ELSE // Wenn kein Separator-Byte definiert wurde, dann das Telegram an die erste Position schreiben
+ FOR #a := 0 TO #nLenTelegram DO
+ // #arData_Test[1, #a + 1] := #arRecvdTelegram[#a];
+ #String := CHAR_TO_STRING((BYTE_TO_CHAR(#arRecvdTelegram[#a])));
+ #arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount] := CONCAT(IN1 := #arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount], IN2 := #String);
+ END_FOR;
+ END_IF;
+
+ // convert each byte field into a string
+ (* FOR #n := 1 TO DINT_TO_UDINT(#arTelegramList[#nTelegramListWrite].nDataCount) DO //1 TO 64
+ Chars_TO_Strg(Chars := #arData_Test[#n],
+ pChars := 0,
+ Cnt := "TELEGRAM_DATA_FIELD_MAX",
+ Strg => #arTelegramList[#nTelegramListWrite].arDataString[#n]);
+ END_FOR; *)
+
+ // increment write pointer to telegram data ring buffer:
+
+ #sLogReceiveMessage := '';
+ FOR #a := 0 TO #nLenTelegram DO
+ #sLogRecvSingle := CHAR_TO_STRING((BYTE_TO_CHAR(#arRecvdTelegram[#a])));
+ #sLogReceiveMessage := CONCAT(IN1 := #sLogReceiveMessage, IN2 := #sLogRecvSingle);
+ END_FOR;
+
+
+ #fbEventLogReceiving.sInMessage := #sLogReceiveMessage;
+ (* FOR #j := 1 TO #arTelegramList[#nTelegramListWrite].nDataCount DO
+ #fbEventLogReceiving.sInMessage := CONCAT_STRING(IN1:= #fbEventLogReceiving.sInMessage, IN2:= '',IN3:=#arTelegramList[#nTelegramListWrite].arDataString[#j]);
+ END_FOR; *)
+ #fbEventLogReceiving.xInTrigger := 1;
+
+ #nTelegramListWrite := #nTelegramListWrite + 1;
+ IF (#nTelegramListWrite > "TELEGRAM_RECV_LIST_MAX") THEN // Wenn Maximum an Telegrammen erreicht, dann Index zurücksetzen, ältestes wird überschrieben
+ #nTelegramListWrite := 0;
+ END_IF;
+
+ #xTelegramAvailable := TRUE; // Info rausgeben
+
+ #nParseState := #E_TeleParseState_START; // Zustandswechsel
+
+ END_IF;
+ ELSIF #RetVal_StartMarkerFound AND (#nAnalyzeBufferLen > #stTelegramDefinition.nStartMarkerLen) THEN
+ // #Laenge := #nAnalyzeBufferLen - #stTelegramDefinition.nStartMarkerLen; // 8192 - ...
+ #RetVal_MoveBlk_Zwischenpuffer := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := ((#cTelegramLengthReceive + 1) - #nAnalyzeBufferLen - #stTelegramDefinition.nStartMarkerLen), SRC_INDEX := UDINT_TO_DINT(#nAnalyzeBufferLen - #stTelegramDefinition.nStartMarkerLen), DEST_INDEX := 0, DEST => #arAnalyzeBuffer);
+ #nAnalyzeBufferLen := #stTelegramDefinition.nStartMarkerLen;
+ ELSE
+ IF (UDINT_TO_DINT(#stTelegramDefinition.nLength) > 0 AND
+ #nAnalyzeBufferLen >= UDINT_TO_DINT(#stTelegramDefinition.nLength)) THEN
+
+ #RetVal_MoveBlk_Zwischenpuffer := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := #cTelegramLengthReceive + 1, SRC_INDEX := 1, DEST_INDEX := 0, DEST => #arAnalyzeBuffer);
+
+ #nAnalyzeBufferLen := #nAnalyzeBufferLen - 1;
+
+ END_IF;
+ END_IF;
+ END_REGION
+
+ END_FOR;
+ FOR #i := 0 TO 65535 DO
+ #stTcpParam.t_TelegramReceiveBuffer[#i] := 0;
+ END_FOR;
+ // #stTcpParam.t_TelegramReceiveBuffer := #temp_TelegramReceiveBuffer;
+ END_IF;
+ #xStart := FALSE;
+
+ END_REGION
+
+ (* REGION Sending
+ IF #tempEdgeSend THEN
+ REGION Prepare new Telegram and add to Send-FIFO
+ // add start string
+ IF (#stTelegramDefinition.sStartMarkerSend <> '') THEN
+ #sBuildString := #stTelegramDefinition.sStartMarkerSend;
+ ELSE
+ #sBuildString[1] := '0';
+ END_IF;
+
+ // add data fields:
+ FOR #i := 1 TO #stInTelegramSend.nDataCount DO
+ IF (#i > 1) THEN
+ #sBuildString := CONCAT(IN1 := #sBuildString, IN2 := CHAR_TO_STRING(#stTelegramDefinition.bSeparatorByte));
+ END_IF;
+
+ IF (#stInTelegramSend.arDataString[#i] <> '') THEN
+ #sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stInTelegramSend.arDataString[#i]);
+ END_IF;
+ END_FOR;
+
+ // add end string:
+ IF (#stTelegramDefinition.sEndMarkerSend <> '') THEN
+ #sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stTelegramDefinition.sEndMarkerSend);
+ END_IF;
+
+ REGION SendStr
+ // hier dann sBuildString mit Enqueue in SendFIFO schieben zum Versenden
+ IF NOT #fbTeleSendFifo.isFull THEN
+ // #stSendFifoParam.sStringIn := #sBuildString;
+ "FC_FIFO_Append"(DataIn := #sBuildString,
+ InitialItem := #sInitialEmptyString,
+ MaxNo := 100,
+ Success => #xSuccess_Append_SendFIFO,
+ fifoBuffer := #fbTeleSendFifo,
+ buffer := #stSendFifoParam.arStringBuffer);
+ // #stSendFifoParam.xEnq := TRUE;
+ #xInOutSendTele := FALSE;
+ #fbEventLogSending.sInMessage := #sBuildString;
+ #fbEventLogSending.xInTrigger := 1;
+ ELSE
+ // Error Todo
+ ;
+ END_IF;
+ END_REGION ;
+ END_REGION
+ END_IF;
+ END_REGION *)
+
+ REGION Send Telegram
+ IF NOT #fbInOutSendFIFO.isEmpty AND // Es gibt etwas zum Senden?
+ (#nStateConn = #STATE_CONNECTED) AND // Verbindung zum Partner aufgebaut
+ //NOT #stSendFifoParam.xDeq AND // FIFO nicht busy
+ NOT #stTcpParam.xSendRequest AND // Aktuell kein aktiver Sendeauftrag
+ NOT #stTcpParam.xSending
+ THEN
+ "FC_FIFO_GetFirst"(xInInitialItem := #stInitialTelegram,
+ nInMaxNo := 100,
+ xOutSuccess => #xSuccess_GF_SendFIFO,
+ xOutData => #stTelegramSend,
+ fifoBuffer := #fbInOutSendFIFO,
+ buffer := #arFifoSendBuffer);
+ END_IF;
+
+ IF #xSuccess_GF_SendFIFO THEN // Wenn erstes Telegram herausgeholt
+
+ REGION Log
+ IF "FB_CommunicationLogger_DB".fbTeleHandler.xOutConnectionActive AND NOT #xInSendTele THEN
+
+ // "DB_CommunciationParametersLogger".xIsLogger := TRUE;
+
+ "FC_FIFO_Append"(DataIn := #stTelegramSend,
+ InitialItem := #empty,
+ MaxNo := 100,
+ Success => #xSuccess,
+ fifoBuffer := "DB_LGF_FIFO_CommLogger",
+ buffer := "DB_Buffer_CommunicationLogger".BUFFER);
+ ;
+ END_IF;
+
+ END_REGION ;
+
+ REGION Prepare Telegram for sending
+ // add start string
+ IF (#stTelegramDefinition.sStartMarkerSend <> '') THEN
+ #sBuildString := #stTelegramDefinition.sStartMarkerSend;
+ ELSE
+ #sBuildString[1] := '0';
+ END_IF;
+
+ // add data fields:
+ FOR #i := 1 TO #stTelegramSend.nDataCount DO
+ IF (#i > 1) THEN
+ #sBuildString := CONCAT(IN1 := #sBuildString, IN2 := CHAR_TO_STRING(#stTelegramDefinition.bSeparatorByte));
+ END_IF;
+
+ IF (#stTelegramSend.arDataString[#i] <> '') THEN
+ #sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stTelegramSend.arDataString[#i]);
+ END_IF;
+ END_FOR;
+
+ // add end string:
+ IF (#stTelegramDefinition.sEndMarkerSend <> '') THEN
+ #sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stTelegramDefinition.sEndMarkerSend);
+ END_IF;
+ END_REGION
+
+ #strLen := INT_TO_UINT(LEN(#sBuildString)); // Telegramlänge ermitteln
+ Strg_TO_Chars(Strg := #sBuildString, // Telegramstring in Array of Byte umwandeln
+ pChars := 0,
+ Cnt => #strLen,
+ Chars := #stTcpParam.t_TelegramSendBuffer);
+ #stTcpParam.nSendLen := #strLen; // Telegramlänge übergeben
+ #stTcpParam.xSendRequest := TRUE; // Sendeauftrag starten
+ END_IF;
+
+ END_REGION
+
+ REGION TCP-Verbindungszustand
+ CASE #nStateConn OF
+
+ #STATE_RECONNECT:
+
+ REGION STATE: RECONNECT
+ // Status
+ #sConnectionStatus := 'RECONNECTING';
+
+ // Static
+ #stTcpParam.xSendRequest := FALSE;
+ #stTcpParam.xEnable := FALSE; // Disable connection
+
+ // Transition
+ IF #tOnRetryEnable.Q THEN // Totzeit
+ #nStateConn := #STATE_NOTCONNECTED;
+ END_IF;
+ END_REGION
+
+ #STATE_NOTCONNECTED:
+
+ REGION STATE: NOT CONNECTED
+ // Status
+ #sConnectionStatus := 'NOT CONNECTED';
+
+ // Static
+ #stTcpParam.xSendRequest := FALSE;
+ #stTcpParam.xEnable := TRUE; // Verbindungsaufbau aktivieren / TCP-Baustein aktivieren
+
+ // Transition
+ IF #stTcpParam.xConnectionEstablished THEN // Erfolgreich verbunden mit Partner?
+ #nStateConn := #STATE_CONNECTED;
+ ELSIF #tOnWatchdogConn.Q THEN // Nach Timeout wird der Verbindungsaufbau neu getriggert
+ #nStateConn := #STATE_RECONNECT;
+ END_IF;
+ END_REGION
+
+ #STATE_CONNECTED:
+
+ REGION STATE: CONNECTED
+ #sConnectionStatus := 'CONNECTED';
+
+ IF NOT #stTcpParam.xConnectionEstablished THEN // Verbindung verloren?
+ #nStateConn := #STATE_RECONNECT; // Neue Verbindung starten
+ END_IF;
+ END_REGION
+
+ END_CASE;
+
+ END_REGION
+
+ REGION TCP-Communication: Server
+ #fbTcpComm(configuration := #stInTcpTypeConfig,
+ enable := #stTcpParam.xEnable,
+ send := #stTcpParam.xSendRequest,
+ sendDataLength := #stTcpParam.nSendLen,
+ connected => #stTcpParam.xConnectionEstablished,
+ sending => #stTcpParam.xSending,
+ dataReceived => #stTcpParam.xNdr,
+ receivedDataLength => #stTcpParam.nRcvdLen,
+ busy => #stTcpParam.xBusy,
+ error => #stTcpParam.xError,
+ status => #stTcpParam.nStatus,
+ sendBuffer := #stTcpParam.t_TelegramSendBuffer,
+ receiveBuffer := #stTcpParam.t_TelegramReceiveBuffer,
+ diagnostics := #stTcpParam.stDiagnosticData);
+
+ #fTrigSending(CLK:= #stTcpParam.xSending);
+
+ IF #fTrigSending.Q THEN
+ #stTcpParam.xSendRequest := FALSE;
+ END_IF;
+ END_REGION
+
+ REGION Timer
+ #tOnRetryEnable(IN := #nStateConn = #STATE_RECONNECT,
+ PT := t#50ms);
+
+ #tOnWatchdogConn(IN := #nStateConn = #STATE_NOTCONNECTED,
+ PT := t#15s);
+ END_REGION
+
+ REGION Outputs
+ #xOutTelegramAvailable := #xTelegramAvailable;
+ #stOutNewTelegram := #stFirstTelegram;
+ #xOutConnectionActive := (#nStateConn = #STATE_CONNECTED);
+ END_REGION
+
+ REGION Logging
+ #fbEventLogSending(sInInstance := CONCAT(IN1 := ''(* #stInTcpParameters.sInInstance *), IN2 := '-Sending'),
+ nInLogLevel := 0(* "E_LogLevel.DEBUG" *));
+ #fbEventLogSending.xInTrigger := 0;
+ #fbEventLogReceiving(sInInstance := CONCAT(IN1 := ''(* #stInTcpParameters.sInInstance *), IN2 := '-Receiving'),
+ nInLogLevel := 0(* "E_LogLevel.DEBUG" *));
+ #fbEventLogReceiving.xInTrigger := 0;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FB_EventLog_Root.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FB_EventLog_Root.liblink
new file mode 100644
index 0000000..66f48cf
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FB_EventLog_Root.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 507f060d-3ada-4f0d-be55-ad0a573f4197
+VersionGuid: 0eb2e25d-8a3e-4933-a967-d5e3f0e48bb4
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_DateAsString_1.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_DateAsString_1.liblink
new file mode 100644
index 0000000..1c4d8f8
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_DateAsString_1.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ec1c1f34-0a2d-4751-84a8-f9c4ee84884b
+VersionGuid: 4adee4de-c703-4794-9700-da57684c5c9f
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_Loglevel_to_String.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_Loglevel_to_String.liblink
new file mode 100644
index 0000000..f271c2b
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_Loglevel_to_String.liblink
@@ -0,0 +1,2 @@
+TypeGuid: ecdcb816-c5f6-4500-b05f-1b5b1f79ef0b
+VersionGuid: 85d69f29-f857-4428-90a9-872b80e36573
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_TimeAsString_2.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_TimeAsString_2.liblink
new file mode 100644
index 0000000..90b5c34
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/FC_TimeAsString_2.liblink
@@ -0,0 +1,2 @@
+TypeGuid: e790056b-d8d1-47bb-bce9-c6e26c157eec
+VersionGuid: 36b9f032-4747-42aa-b87f-9637f121af9c
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/Parser/FC_ParseCheckForEnd.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/Parser/FC_ParseCheckForEnd.liblink
new file mode 100644
index 0000000..b4fd484
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/Parser/FC_ParseCheckForEnd.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7462bbc8-2811-4b0d-bdf1-031a6aa286ee
+VersionGuid: c0b69439-324f-4624-bfa7-02fc724e52f7
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/Parser/FC_ParseCheckForStart.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/Parser/FC_ParseCheckForStart.liblink
new file mode 100644
index 0000000..03b0fc9
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/170_Communications/TCP/TeleHandler/Parser/FC_ParseCheckForStart.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 9058dc9e-b9e7-4405-8e1d-e48b9273bd5f
+VersionGuid: 592d2c58-e2fc-4ba6-a0b2-d15ffd39706c
diff --git a/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/180_Safety/FB_ESTOPhandling.liblink b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/180_Safety/FB_ESTOPhandling.liblink
new file mode 100644
index 0000000..8098921
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/1_BaseSystemLib/180_Safety/FB_ESTOPhandling.liblink
@@ -0,0 +1,2 @@
+TypeGuid: bd77b34d-de4a-4cf4-b3fa-6af27ab4f306
+VersionGuid: bde5a261-573a-4feb-b079-cd5359d14c09
diff --git a/=A01+UH04-KF00/Programmbausteine/200_MFR/FC_CARR_GLOB_CORRECTION.scl b/=A01+UH04-KF00/Programmbausteine/200_MFR/FC_CARR_GLOB_CORRECTION.scl
new file mode 100644
index 0000000..d2cc14e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/200_MFR/FC_CARR_GLOB_CORRECTION.scl
@@ -0,0 +1,631 @@
+FUNCTION "FC_CARR_GLOB_CORRECTION" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ xInStart : Bool; // Ausführen der Funktion
+ nInBarcodeScan : DInt; // Gescannter Barcode
+ nInStation : Int; // Scanner-Nummer für Unterscheidungen
+ END_VAR
+
+ VAR_OUTPUT
+ arOutEventLogInfo : Array[0..1] of "stEventCorrectionInfo"; // Informationen für Log-Baustein
+ END_VAR
+
+ VAR_IN_OUT
+ InOutCarrierExpect : "stCarrier"; // Erwarteter Carrier in ScannerStation
+ END_VAR
+
+ VAR_TEMP
+ tmpPartJam : "stCarrier"; // Zwischengespeicherter Carrier, gefunden in Jambereich
+ tmpPartHyperJam : "stCarrier"; // Zwischengespeicherter Carrier, gefunden in JHyperjam
+ tmpDummy : "stCarrier"; // Leerer Dummy mit speziellem Barcode
+ tmpEmpty : "stCarrier"; // Leerer Carrier
+ nCounter : DInt;
+ i : Int; // Schleifenindex
+ tempStatus : Int;
+ xResult : Bool;
+ END_VAR
+
+
+BEGIN
+ (*************************************************************************************
+ Durchsucht alle Jam- und Lagerberieche nach den Daten die mit dem gescannten Barcode verbunden sind falls am Scanner ein anderes Teil erwartet wird.
+ -Suche beginnt immer im Hyperjam.
+ -Wenn fündig im Hyperjam, dann wird erwartetes Teil durch das Teil vom Hyperjam ersetzt, dafür kommt erwartetes Teil in Hyperjam.
+ -Ansonsten wenn fündig in Jambereichen, dann werden Daten aus dem Jambereich übernommen und diese durch Dummy ersetzt
+ *************************************************************************************)
+
+ #tmpDummy.nBarcode := 1;
+ #tmpDummy.bStatus.%X0 := TRUE;
+
+ IF #xInStart AND #nInBarcodeScan > 0 THEN //Barcode muss einen Wert haben
+ REGION Hyperjam
+ FOR #i := 1 TO "cHyperJam" DO
+ IF "DB_HyperJam".stHyperJam.arCarrier[#i].nBarcode = #nInBarcodeScan THEN //Merke gefundenes Teil und lösche ursprüngliches
+ #tmpPartHyperJam := "DB_HyperJam".stHyperJam.arCarrier[#i];
+ "DB_HyperJam".stHyperJam.arCarrier[#i] := #tmpEmpty;
+
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 0;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'HyperJam';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartHyperJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4000_1
+ FOR #i := 1 TO "cJam4000_1" DO
+ IF "DB_JamArea4000".stJam4000_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4000".stJam4000_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4000".stJam4000_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4000_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4000".stJam4000_1.arCarrier);
+ "DB_JamArea4000".stJam4000_1.arCarrier["cJam4000_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4001_1
+ FOR #i := 1 TO "cJam4001_1" DO
+ IF "DB_JamArea4001".stJam4001_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4001".stJam4001_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4001".stJam4001_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4001_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4001".stJam4001_1.arCarrier);
+ "DB_JamArea4001".stJam4001_1.arCarrier["cJam4001_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4001_2
+ FOR #i := 1 TO "cJam4001_2" DO
+ IF "DB_JamArea4001".stJam4001_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4001".stJam4001_2.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4001".stJam4001_2.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4001_2" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4001".stJam4001_2.arCarrier);
+ "DB_JamArea4001".stJam4001_2.arCarrier["cJam4001_2"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4002_1
+ FOR #i := 1 TO "cJam4002_1" DO
+ IF "DB_JamArea4002".stJam4002_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4002".stJam4002_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4002".stJam4002_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4002_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4002".stJam4002_1.arCarrier);
+ "DB_JamArea4002".stJam4002_1.arCarrier["cJam4002_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4002_2
+ FOR #i := 1 TO "cJam4002_2" DO
+ IF "DB_JamArea4002".stJam4002_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4002".stJam4002_2.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4002".stJam4002_2.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4002_2" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4002".stJam4002_2.arCarrier);
+ "DB_JamArea4002".stJam4002_2.arCarrier["cJam4002_2"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4003_1
+ FOR #i := 1 TO "cJam4003_1" DO
+ IF "DB_JamArea4003".stJam4003_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_1.arCarrier);
+ "DB_JamArea4003".stJam4003_1.arCarrier["cJam4003_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4003_2
+ FOR #i := 1 TO "cJam4003_2" DO
+ IF "DB_JamArea4003".stJam4003_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_2.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_2.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_2" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_2.arCarrier);
+ "DB_JamArea4003".stJam4003_2.arCarrier["cJam4003_2"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4003_3
+ FOR #i := 1 TO "cJam4003_3" DO
+ IF "DB_JamArea4003".stJam4003_3.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_3.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_3.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_3" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_3.arCarrier);
+ "DB_JamArea4003".stJam4003_3.arCarrier["cJam4003_3"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4003_4
+ FOR #i := 1 TO "cJam4003_4" DO
+ IF "DB_JamArea4003".stJam4003_4.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_4.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_4.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_4" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_4.arCarrier);
+ "DB_JamArea4003".stJam4003_4.arCarrier["cJam4003_4"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4003_5
+ FOR #i := 1 TO "cJam4003_5" DO
+ IF "DB_JamArea4003".stJam4003_5.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_5.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_5.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_5" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_5.arCarrier);
+ "DB_JamArea4003".stJam4003_5.arCarrier["cJam4003_5"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4003_6
+ FOR #i := 1 TO "cJam4003_6" DO
+ IF "DB_JamArea4003".stJam4003_6.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_6.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_6.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_6" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_6.arCarrier);
+ "DB_JamArea4003".stJam4003_6.arCarrier["cJam4003_6"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4003_7
+ FOR #i := 1 TO "cJam4003_7" DO
+ IF "DB_JamArea4003".stJam4003_7.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4003".stJam4003_7.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_7.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4003_7" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4003".stJam4003_7.arCarrier);
+ "DB_JamArea4003".stJam4003_7.arCarrier["cJam4003_7"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4004_1
+ FOR #i := 1 TO "cJam4004_1" DO
+ IF "DB_JamArea4004".stJam4004_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4004".stJam4004_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4004".stJam4004_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4004_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4004".stJam4004_1.arCarrier);
+ "DB_JamArea4004".stJam4004_1.arCarrier["cJam4004_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4005_1
+ FOR #i := 1 TO "cJam4005_1" DO
+ IF "DB_JamArea4005".stJam4005_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4005".stJam4005_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4005".stJam4005_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4005_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4005".stJam4005_1.arCarrier);
+ "DB_JamArea4005".stJam4005_1.arCarrier["cJam4005_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4006_1
+ FOR #i := 1 TO "cJam4006_1" DO
+ IF "DB_JamArea4006".stJam4006_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4006".stJam4006_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4006".stJam4006_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4006_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4006".stJam4006_1.arCarrier);
+ "DB_JamArea4006".stJam4006_1.arCarrier["cJam4006_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4007_1
+ FOR #i := 1 TO "cJam4007_1" DO
+ IF "DB_JamArea4007".stJam4007_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4007".stJam4007_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4007".stJam4007_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4007_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4007".stJam4007_1.arCarrier);
+ "DB_JamArea4007".stJam4007_1.arCarrier["cJam4007_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4008_1
+ FOR #i := 1 TO "cJam4008_1" DO
+ IF "DB_JamArea4008".stJam4008_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4008".stJam4008_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4008".stJam4008_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4008_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4008".stJam4008_1.arCarrier);
+ "DB_JamArea4008".stJam4008_1.arCarrier["cJam4008_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4009_1
+ FOR #i := 1 TO "cJam4009_1" DO
+ IF "DB_JamArea4009".stJam4009_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4009".stJam4009_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4009".stJam4009_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4009_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4009".stJam4009_1.arCarrier);
+ "DB_JamArea4009".stJam4009_1.arCarrier["cJam4009_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4010_1
+ FOR #i := 1 TO "cJam4010_1" DO
+ IF "DB_JamArea4010".stJam4010_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4010".stJam4010_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4010".stJam4010_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4010_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4010".stJam4010_1.arCarrier);
+ "DB_JamArea4010".stJam4010_1.arCarrier["cJam4010_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+ REGION Jam Area 4010_2
+ FOR #i := 1 TO "cJam4010_2" DO
+ IF "DB_JamArea4010".stJam4010_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4010".stJam4010_2.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4010".stJam4010_2.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4010_2" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4010".stJam4010_2.arCarrier);
+ "DB_JamArea4010".stJam4010_2.arCarrier["cJam4010_2"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+ REGION Jam Area 4011_1
+ FOR #i := 1 TO "cJam4011_1" DO
+ IF "DB_JamArea4011".stJam4011_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
+ #tmpPartJam := "DB_JamArea4011".stJam4011_1.arCarrier[#i];
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4011".stJam4011_1.arCarrier,
+ COUNT := INT_TO_UDINT("cJam4011_1" - #i), //lösche Teil und rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_JamArea4011".stJam4011_1.arCarrier);
+ "DB_JamArea4011".stJam4011_1.arCarrier["cJam4011_1"] := #tmpEmpty;//lösche letzte Position
+ REGION Event Log
+ #arOutEventLogInfo[0].xTrigger := TRUE;
+ #arOutEventLogInfo[0].nCorrectionType := 1;
+ #arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
+ #arOutEventLogInfo[0].sLoc := 'JamPin';
+ #arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
+ END_REGION
+ GOTO END;
+ END_IF;
+ END_FOR;
+ END_REGION
+
+
+ END:
+ ;
+ REGION Handling
+ IF #tmpPartHyperJam.nBarcode <> 0 THEN //Gefundenes Teil aus Hyperjam
+ REGION Teil aus Hyperjam
+ IF #InOutCarrierExpect.nBarcode > 10000 THEN //Wenn erwarteter Carrier einen Barcode hat, füge ihn am Ende des Hyperjams ein
+ "FC_TSHR_AddAtEnd"(stInTrolley := #InOutCarrierExpect,
+ nOutCounter => #nCounter,
+ xOutResult => #xResult,
+ arTSHR := "DB_HyperJam".stHyperJam.arCarrier);
+
+ REGION Event log
+
+ #arOutEventLogInfo[1].xTrigger := TRUE;
+ #arOutEventLogInfo[1].nCorrectionType := 3;
+ #arOutEventLogInfo[1].sBarcode := DINT_TO_STRING(#InOutCarrierExpect.nBarcode);
+ #arOutEventLogInfo[1].sLoc := 'HyperJ';
+ #arOutEventLogInfo[1].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[1].sDest := INT_TO_STRING(#InOutCarrierExpect.nDestination);
+
+ END_REGION
+
+ END_IF;
+ FOR #i := 1 TO "cHyperJam" DO //Durchsuche Hyperjam nach Lücke
+ IF NOT "DB_HyperJam".stHyperJam.arCarrier[#i].bStatus.%X0 THEN
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_HyperJam".stHyperJam.arCarrier,
+ COUNT := INT_TO_UDINT("cHyperJam" - #i), //Wo die Lücke im Hyperjam entstanden ist, rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_HyperJam".stHyperJam.arCarrier);
+ "DB_HyperJam".stHyperJam.arCarrier["cHyperJam"] := #tmpEmpty; //lösche letztes Teil
+ EXIT;
+ END_IF;
+ END_FOR;
+ #InOutCarrierExpect := #tmpPartHyperJam; //Gib gefundenes Teil aus
+ END_REGION
+ ELSIF #tmpPartJam.nBarcode <> 0 THEN //Gefundenes Teil aus Jambereich
+ REGION Teil aus Jam
+ IF #InOutCarrierExpect.nBarcode > 10000 THEN //Wenn erwarteter Carrier einen Barcode hat, füge ihn am Ende des Hyperjams ein
+ "FC_TSHR_AddAtEnd"(stInTrolley := #InOutCarrierExpect,
+ nOutCounter => #nCounter,
+ xOutResult => #xResult,
+ arTSHR := "DB_HyperJam".stHyperJam.arCarrier);
+
+ REGION Event log
+
+ #arOutEventLogInfo[1].xTrigger := TRUE;
+ #arOutEventLogInfo[1].nCorrectionType := 3;
+ #arOutEventLogInfo[1].sBarcode := DINT_TO_STRING(#InOutCarrierExpect.nBarcode);
+ #arOutEventLogInfo[1].sLoc := 'HyperJ';
+ #arOutEventLogInfo[1].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[1].sDest := INT_TO_STRING(#InOutCarrierExpect.nDestination);
+
+ END_REGION
+
+ END_IF;
+ FOR #i := 1 TO "cHyperJam" DO //Durchsuche Hyperjam nach Lücke
+ IF NOT "DB_HyperJam".stHyperJam.arCarrier[#i].bStatus.%X0 THEN
+ #tempStatus := MOVE_BLK_VARIANT(SRC := "DB_HyperJam".stHyperJam.arCarrier,
+ COUNT := INT_TO_UDINT("cHyperJam" - #i), //Wo die Lücke im Hyperjam entstanden ist, rücke Rest nach
+ SRC_INDEX := #i,
+ DEST_INDEX := #i - 1,
+ DEST => "DB_HyperJam".stHyperJam.arCarrier);
+ "DB_HyperJam".stHyperJam.arCarrier["cHyperJam"] := #tmpEmpty; //lösche letztes Teil
+ EXIT;
+ END_IF;
+ END_FOR;
+ #InOutCarrierExpect := #tmpPartJam; //Gib gefundenes Teil aus
+ END_REGION
+ ELSE
+ //Teil bei Suche nicht gefunden, aber das erwartete soll trotzdem in den Hyperjam kommen und außerhalb des FC dann durch den gescannten ersetzt werden
+ IF #InOutCarrierExpect.nBarcode > 10000 THEN //Wenn erwarteter Carrier einen gültigen Barcode hat, füge ihn am Ende des Hyperjams ein
+ "FC_TSHR_AddAtEnd"(stInTrolley := #InOutCarrierExpect,
+ nOutCounter => #nCounter,
+ xOutResult => #xResult,
+ arTSHR := "DB_HyperJam".stHyperJam.arCarrier);
+ //Es gibt keine Lücke in der Liste die man schließen muss
+ REGION Event log
+
+ #arOutEventLogInfo[1].xTrigger := TRUE;
+ #arOutEventLogInfo[1].nCorrectionType := 3;
+ #arOutEventLogInfo[1].sBarcode := DINT_TO_STRING(#InOutCarrierExpect.nBarcode);
+ #arOutEventLogInfo[1].sLoc := 'HyperJ';
+ #arOutEventLogInfo[1].sPos := INT_TO_STRING(#i);
+ #arOutEventLogInfo[1].sDest := INT_TO_STRING(#InOutCarrierExpect.nDestination);
+
+ END_REGION
+
+ END_IF;
+
+ // #xOutNotFound := TRUE;
+ #InOutCarrierExpect.nDestination := 0;
+ #InOutCarrierExpect.nBarcode := #nInBarcodeScan; //Hier werden neue Carrier im System angelegt
+ #InOutCarrierExpect.bStatus.%X0 := TRUE;
+ END_IF;
+ END_REGION
+ END_IF;
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/200_MFR/FC_Direction.scl b/=A01+UH04-KF00/Programmbausteine/200_MFR/FC_Direction.scl
new file mode 100644
index 0000000..0a6499e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/200_MFR/FC_Direction.scl
@@ -0,0 +1,73 @@
+FUNCTION "FC_Direction" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInSwitchNo : USInt;
+ END_VAR
+
+ VAR_OUTPUT
+ nOutDirection : USInt; // Ziel für Switch-Baustein
+ END_VAR
+
+ VAR_IN_OUT
+ InOutCarrier : "stCarrier";
+ END_VAR
+
+
+BEGIN
+ // Destination vom Carrier, immer unterschiedlich je nach Anlagenbereich, soll übertragen werden auf universale Switch Direction (1-4)
+
+ // TEST TEST TEST
+ REGION Vergabe Direction
+ CASE #nInSwitchNo OF
+ "cSwi405.1":
+ REGION Switch 405.1
+ IF (#InOutCarrier.nDestination = "cDestLeaveAmr") THEN // Verlasse AMR (empty carrier)
+ #nOutDirection := 1; // LINKS, 1->3
+ ELSE // Im AMR bleiben, alle anderen Fälle + Fallbackstrategie (?)
+ #nOutDirection := 2; // RECHTS, 1->4
+ END_IF;
+ END_REGION
+
+ "cSwi407.1":
+ REGION Switch 407.1
+ IF #InOutCarrier.nDestination = "cDestMps3" THEN // MPS 3
+ #nOutDirection := 1; // LINKS, 1->3
+ ELSIF #InOutCarrier.nDestination = "cDestStayAmr"
+ OR #InOutCarrier.nDestination = "cDestRecirc"
+ THEN // Auf Kreisel bleiben
+ #nOutDirection := 2; // RECHTS, 1->4
+ ELSE
+ #nOutDirection := 2; // Fallback, falls unerwartetes Ziel
+ END_IF;
+ END_REGION
+
+ "cSwi410.1":
+ REGION Switch 410.1
+ IF #InOutCarrier.nDestination = "cDestMps2" THEN // MPS 2
+ #nOutDirection := 1; // LINKS, 1->3
+ ELSIF #InOutCarrier.nDestination = "cDestStayAmr"
+ OR #InOutCarrier.nDestination = "cDestRecirc"
+ THEN // Auf Kreisel bleiben
+ #nOutDirection := 2; // RECHTS, 1->4
+ ELSE
+ #nOutDirection := 2; // Fallback, falls unerwartetes Ziel
+ END_IF;
+ END_REGION
+
+ "cSwi413.1":
+ REGION Switch 413.1
+ IF #InOutCarrier.nDestination = "cDestMps1" THEN // MPS 1
+ #nOutDirection := 1; // LINKS, 1->3
+ ELSIF #InOutCarrier.nDestination = "cDestStayAmr"
+ OR #InOutCarrier.nDestination = "cDestRecirc"
+ THEN // Auf Kreisel bleiben
+ #nOutDirection := 2; // RECHTS, 1->4
+ ELSE
+ #nOutDirection := 2; // Fallback, falls unerwartetes Ziel
+ END_IF;
+ END_REGION
+ END_CASE;
+ END_REGION
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Booking.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Booking.liblink
new file mode 100644
index 0000000..99b8fbf
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Booking.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 330e3c73-0c6f-428c-bd04-06e779578b19
+VersionGuid: 6e61feb0-b755-46ad-858d-a6af74114a38
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Correction.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Correction.liblink
new file mode 100644
index 0000000..dee516e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Correction.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 873575bd-45c1-4e5d-ad81-32da723bf561
+VersionGuid: ef6d16a4-e489-47fe-ac26-6e1120abf3dc
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Scan.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Scan.liblink
new file mode 100644
index 0000000..373181d
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/Eventlog/FB_EventLog_Scan.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7b2f674e-09cf-4295-8f62-286c90fb1e37
+VersionGuid: 0c32dfac-9456-4f09-94aa-e0c5522ed860
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/Conveyor/FB_Conveyor.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/Conveyor/FB_Conveyor.liblink
new file mode 100644
index 0000000..84a1e51
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/Conveyor/FB_Conveyor.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 0fb07577-0755-4aaa-8aa1-ed98c4a96d46
+VersionGuid: 80031440-bc66-4cb7-9dd8-353095fb8de0
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_1Sep.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_1Sep.liblink
new file mode 100644
index 0000000..aeca999
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_1Sep.liblink
@@ -0,0 +1,2 @@
+TypeGuid: d0ad9446-bc78-42a5-b84b-49a4797c28ac
+VersionGuid: 574d1c63-2f47-400a-81d4-5ae98e38068a
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_1Sep1Swi.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_1Sep1Swi.liblink
new file mode 100644
index 0000000..5829363
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_1Sep1Swi.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 2dfa028b-93e2-4db3-a2df-573dd5f5a859
+VersionGuid: 9b45df8c-7bb0-44b6-97db-967b2a2d5925
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_Vario.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_Vario.liblink
new file mode 100644
index 0000000..5ec05c8
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/FB_ILS_MTRO_Vario.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 901da2f1-dd37-4f9f-ad1c-457a2942dfb5
+VersionGuid: ef1f567e-60c2-46dd-a938-0b4684fbae6e
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/Special/FB_ILS_MTRO_Vario_workStation.scl b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/Special/FB_ILS_MTRO_Vario_workStation.scl
new file mode 100644
index 0000000..bba1314
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/MTRO/Special/FB_ILS_MTRO_Vario_workStation.scl
@@ -0,0 +1,1301 @@
+FUNCTION_BLOCK "FB_ILS_MTRO_Vario_workStation"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ stInSettings : Struct // Einstellungen MTRO
+ nTroStopper1 : Int;
+ xIsBorner : Bool; // Bei diesem TRO werden immer neue Carrier angelegt (z.B. erster TRO bei Einfahrt in Gesamtanlage)
+ sJamSrc : String[16];
+ sJamDest : String[16];
+ bSepType : Byte := 16#0; // X0: TRUE - erstes Bein halten, X1: TRUE- Beladekontrolle, X2: TRUE - Beladeerfassung
+ tPartSenHigh : Time := T#500ms;
+ tInSenHigh : Time := T#500ms;
+ nBornerDest : Int; // Standard Destination festlegen für Borner (variabel)
+ tDummyTimeNormal : Time := T#3s; // Zeit für Dummy anlegen (Dummy = 1)
+ tDummyTimeBorner : Time := T#0ms; // Zeit für Dummy anlegen (Dummy = 1000-2000) schneller...
+ END_STRUCT;
+ stInVario : Struct // Schnittstelle Vario
+ stSenFinger : "UDT_Sensor";
+ stSenNextSep : "UDT_Sensor";
+ stSenJam : "UDT_Sensor";
+ stSenLastPos : "UDT_Sensor";
+ stSenSepVario : "UDT_Sensor";
+ stSenCarrInPos : "UDT_Sensor";
+ Settings : "SettingsVario";
+ SettingsVarioFingerMonitoring : "UDT_SettingsVarioFingerMonitoring";
+ END_STRUCT;
+ stInSeparator1 : Struct // Schnittstelle Separator (vor Vario Förderer)
+ stSenInSep : "UDT_Sensor"; // Sensor in Stopper
+ stSenSepLeft : "UDT_Sensor"; // Sensor nach Stopper
+ stSenPart : "UDT_Sensor"; // Checkt, ob der Bügelträger beladen ist
+ stSenStartScan : "UDT_Sensor"; // Sensor nach Stopper wenn Scanner vorhanden. Vermutlich startet dieser Sensor den Scanner
+ Settings : "SettingsSeparator";
+ END_STRUCT;
+ stInBarcodeReader : Struct // Schnittstelle Barcode-Leser
+ Settings : "UDT_SettingsBarcodeReader";
+ END_STRUCT;
+ stInPriorityManager : "UDT_Response"; // Schnittstelle Prioritätenmanager (z.B. bei Kreuzungen)
+ nInMainTroNo : UInt; // TRO Nummer
+ xInRelease : Bool;
+ xInSftyOk : Bool; // Safety
+ xInMotorProtection : Bool; // Motorschutz Vario
+ xInAllRdyToStart : Bool; // Alles bereit
+ xInJamAtExit2 : Bool; // Stau am Ausgang
+ xInTestMode : Bool; // Testmodus
+ xInReset : Bool; // Baustein Reset
+ xInErrorQuit : Bool;
+ xInAutomatic : Bool;
+ stInStationSensor : "UDT_Sensor";
+ xInReleaseStation : Bool;
+ END_VAR
+
+ VAR_OUTPUT
+ stOutPriorityManager : "UDT_Request"; // Schnittstelle Prioritätenmanager (z.B. bei Kreuzungen)
+ xOutStopper : Bool; // Separator Stopper
+ xOutVarioMotor : Bool; // Vario Motor
+ xOutJamAtEntry1 : Bool; // Stau Eingang
+ xOutCarouselReq : Bool; // Motor anfordern (Prüfen)
+ xOutCorrection : Bool;
+ nOutStateLast : Int;
+ nOutScanResult : DInt;
+ xOutNewScan : Bool;
+ xOutBooked : Bool;
+ stOutLastCarrier : "stCarrier";
+ END_VAR
+
+ VAR_IN_OUT
+ arInOutJamEntr : Array[*] of "stCarrier"; // Daten Staubereich Eingang 1
+ stInOutJamEntr : "stJamData";
+ arInOutJamFinger : Array[*] of "stCarrier"; // Daten Staubereich Finger
+ stInOutJamFinger : "stJamData";
+ stInOutMachineState : "UDT_MainState"; // Maschinenzustand (Allgemien)
+ stInOutCognexInterface : "stCognexInterface"; // Cognex Barcode Reader Interface
+ stInOutHMI : "UDT_HMI_TRO"; // HMI TRO
+ END_VAR
+
+ VAR
+ fbBarcodeReader : "FB_BarcodeReaderCognex";
+ fbStateManager { S7_SetPoint := 'False'} : "FB_StateManager";
+ fbSeparator1 { S7_SetPoint := 'False'} : "FB_ILS_STRO_Sep";
+ fbConvVario : "FB_ILS_STRO_Vario_WorkStation";
+ fbSepWait : "FB_CarrAccumulate1Sep";
+ END_VAR
+ VAR RETAIN
+ stActRequest : Struct
+ xNBT : Bool; // Es handelt sich um einen Nullbügelträger
+ xCancelled : Bool; // Abbruchanforderung durch MFR
+ nActArrIndex : USInt;
+ nActReqIndex : USInt; // 0 = nichts zu tun | 1-200: Aktuell bearbeiteter Index
+ nDirection : USInt; // 0: Es bleibt hier alles so wie es ist! | 1: E1->A2
+ nRequestedNoBT : USInt; // Anzahl Trolleys die ausgefahren werden sollen
+ nReasonForStop : USInt; // 0: Nichts | 5: Alle BT ausgefahren | 10: Fehler in SubTro | 15: Kein BT/NBT am Eingang | 20: Stau im nächsten MTRO | 25: NBT | 30: Falsch gefahren | 35: Initial-BT kam nicht am Ziel an | 40: Allgemeiner Fehler | 45: Abbruch durch MFR | 50: Fehler in Anfrage von MRF | 55: MFR hat TRO pausiert
+ nActNoStopper : USInt; // Anzahl der Stopper-öffnungen in diesem Auftrag
+ nCntAtStartSep1 : UDInt; // Absoluter Zähler an Separator 1 bei Start des Auftrages
+ nCntAtStartExit2 : UDInt; // Absoluter Zähler an Exit 2 bei Start des Auftrages
+ END_STRUCT;
+ END_VAR
+ VAR
+ sStateText : String["cStateText"]; // Aktueller State der Schrittkette (textuell)
+ END_VAR
+ VAR RETAIN
+ nState : Int;
+ END_VAR
+ VAR
+ nLastReqIndex : USInt;
+ tOfLastPos {InstructionName := 'TOF_TIME'; LibVersion := '1.0'} : TOF_TIME; // Flanke des letzten Trolleys verarbeiten
+ tOnSvReleaseSep {InstructionName := 'TON_TIME'; LibVersion := '1.0'; S7_SetPoint := 'False'} : TON_TIME; // Supervision - Freigabe Separator
+ END_VAR
+ VAR RETAIN
+ xReleaseTrolleySep1 : Bool; // Öffne-Befehl
+ xLastPosReached : Bool;
+ xErrorMotor : Bool; // Fehler weil Motor-Run fehlt
+ xMTRORdy : Bool;
+ END_VAR
+ VAR
+ xStartScan { S7_SetPoint := 'True'} : Bool;
+ xHandshakeScan : Bool;
+ nBarcodeResult : DInt;
+ xTrolleyWithPart : Bool;
+ xTrolleyWoPart : Bool;
+ xVarioReq : Bool;
+ xReadSecondLeg : Bool;
+ wErrorWord : Word;
+ stCarrierDummy { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'; S7_SetPoint := 'False'} : "stCarrier" := (1, (), 16#01);
+ nArrayMax : Int;
+ fbMonitoringCarrNotArrive : "FB_Monitoring";
+ fbMonitoringCarrWoData : "FB_Monitoring";
+ tOnMonCarrArrive {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Überwachungszeit zwischen Carrier Online & Separator Sensor Belegung
+ fbEventLog_Route : "FB_EventLog_Booking";
+ xCodeEven : Bool;
+ nBarcodeHelp : DInt;
+ sBarcodeString : String;
+ fbEventLogCorrection1 : "FB_EventLog_Correction";
+ fbEventLogCorrection2 : "FB_EventLog_Correction";
+ fbEventLogCarrierUnknown : "FB_EventLog_Scan";
+ fbEventLogCarrierNew : "FB_EventLog_Scan";
+ fbEventLogGoodRead : "FB_EventLog_Scan";
+ fbAlarmVarioMTinPos : "FB_SetAlarmAndLog";
+ nBarcodeEmpty : Int;
+ nBarcodeReader_Result : DInt;
+ FTrig_CarrInPos {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
+ xCarrierSensorPass : Bool;
+ END_VAR
+
+ VAR_TEMP
+ xTemp : Bool;
+ nIndex : USInt;
+ tmpActUnivTon : Bool;
+ xBtEmpty : Bool;
+ xVarioRelease : Bool;
+ xVarioTrigger : Bool;
+ tmpReasonForStop : USInt; // Anhaltegrund in der Schrittkette | 0: Nichts | 5: Alle BT ausgefahren | 10: Fehler in SubTro | 15: Kein BT/NBT am Eingang | 20: Stau im nächsten MTRO | 25: NBT | 30: Falsch gefahren | 35: Initial-BT kam nicht am Ziel an | 40: Allgemeiner Fehler | 45: Abbruch durch MFR | 50: Fehler in Anfrage von MRF | 55: MFR hat TRO pausiert
+ nArrayMaxEntry : DInt;
+ nArrayMaxFinger : DInt;
+ nArrayMaxExit : DInt;
+ stEmptyCarrier : "stCarrier";
+ stBookingInfo : "stEventBookingInfo";
+ arEmptyCarrier : Array[1..1] of "stCarrier"; // Platzhalter für CarrierArray
+ tmpCarrierEmpty : "stCarrier";
+ xEventLogRoute : Bool;
+ arEventCorrectionInfo : Array[0..1] of "stEventCorrectionInfo";
+ stEventNew : "stEventScanInfo";
+ stEventUnknown : "stEventScanInfo";
+ xNewCarrier : Bool;
+ xGoodRead : Bool;
+ xTmpCorrection : Bool;
+ xUnknownCarrier : Bool;
+ stEventGoodRead : "stEventScanInfo";
+ xBooked : Bool;
+ stTempCarrier : "stCarrier";
+ END_VAR
+
+ VAR CONSTANT
+ c0000_StepOff : Int := 0; // Aus
+ c0100_StepUndefined : Int := 100; // Undefiniert
+ c1000_StepWaitForTrolley1 : Int := 1000; // Warte auf Trolley
+ c1100_StepScannerTrig1 : Int := 1100; // Scanner Triggern
+ c1200_StepScannerEval1 : Int := 1200; // Scanergebnis auswerten
+ c1300_StepCheckLoad : Int := 1300; // Beladung prüfen
+ c1400_StepCheckSep1 : Int := 1400; // Separator checken
+ c1500_StepReleaseSep1 : Int := 1500; // Freigabe an Separator
+ c2000_StepWaitForTrolley2 : Int := 2000; // Warte auf Trolley 2
+ c2100_StepScannerTrig2 : Int := 2100; // Scanner Triggern (nur wenn 1.Achse kein Ergebnis)
+ c2200_StepScannerEval2 : Int := 2200; // Scanergebnis auswerten (nur wenn 1.Achse kein Ergebnis)
+ c2300_StepCheckSep2 : Int := 2300; // Separator checken
+ c2400_StepCheckJam : Int := 2400; // Stau prüfen
+ c2500_StepWaitForConvRdy : Int := 2500; // Vario anforderung
+ c2600_StepReleaseSep2 : Int := 2600; // Freigabe an Separator
+ c2700_WaitForCarrInPos : Int := 2700; // Warte bis Carrier den Sensor "In Position" erreicht
+ cCarrierDummy : Int := 1;
+ END_VAR
+
+
+BEGIN
+ REGION Arraygrößen
+ #nArrayMaxEntry := UPPER_BOUND(ARR := #arInOutJamEntr, DIM := 1);
+ #nArrayMaxFinger := UPPER_BOUND(ARR := #arInOutJamFinger, DIM := 1);
+ END_REGION
+
+ REGION Schrittkette
+
+ CASE #nState OF
+ #c0000_StepOff:
+ REGION 0000: Off
+ // akt. Zustand
+ #sStateText := 'OFF';
+ ///////// Ausgänge /////////
+ #xLastPosReached := FALSE;
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+ #xVarioTrigger := FALSE;
+ // #xVarioReq := FALSE;
+ #xCodeEven := FALSE;
+ #xOutNewScan := FALSE;
+ ///////// Timer //////////
+
+ //////// Transition ////////
+
+ //STATE MANAGER KÜMMERT SICH UM TRANSITION!
+ END_REGION
+
+ #c0100_StepUndefined:
+ REGION 0100: Undefined
+ // akt. Zustand
+ #sStateText := 'Undefined';
+ ///////// Ausgänge /////////
+ #xLastPosReached := FALSE;
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+ #xVarioTrigger := FALSE;
+ // #xVarioReq := FALSE;
+ #xMTRORdy := FALSE;
+ #xCodeEven := FALSE;
+ ///////// Timer //////////
+
+ //////// Transition ////////
+ #nState := #c1000_StepWaitForTrolley1;
+ END_REGION
+
+ #c1000_StepWaitForTrolley1:
+ REGION 1000: Wait for Trolley
+ //akt. Zustand
+ #sStateText := 'Wait for Trolley';
+ ///////// Ausgänge /////////
+ #xLastPosReached := FALSE;
+ #xCarrierSensorPass := FALSE;
+
+ ///////// Statics //////////
+
+ #xReleaseTrolleySep1 := FALSE;
+ #xVarioReq := FALSE;
+ #xVarioTrigger := FALSE;
+ #xMTRORdy := TRUE;
+ #xCodeEven := FALSE;
+ #xOutNewScan := FALSE;
+
+ //Transition
+ IF NOT #stInOutHMI.UDT_Ctrl.xPause THEN
+ IF #fbSeparator1.stOutMainTro.xBtPresent THEN //Separator meldet Belegung
+ IF #stInSeparator1.Settings.xPluggedScanner THEN //Scanner verbaut?
+ #nState := #c1100_StepScannerTrig1; //Nächster Schritt -> Scannen
+ ELSIF #arInOutJamEntr[1].bStatus.%X0 THEN // Kein Scanner verbaut, aber Carrier online (z.B. Dummy wurde angelegt)
+ IF #stInSeparator1.Settings.xPluggedPart THEN
+ #nState := #c1300_StepCheckLoad; // Nächster Schritt -> Beladung prüfen
+ ELSE
+ #nState := #c1400_StepCheckSep1; //Nächster Schritt -> Separator chekcen
+ END_IF;
+ END_IF;
+ END_IF;
+ END_IF;
+ END_REGION
+
+ (* "VarioStep_Emptying":
+ REGION 1500: Emptying
+ // akt. Zustand
+ #sStateText := 'Emptying';
+
+ ///////// Ausgänge /////////
+
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+ #xVarioTrigger := FALSE;
+ #xMTRORdy := FALSE; // Handshake an JobManager!
+
+ ///////// Timer //////////
+
+ //////// Transition ////////
+
+ IF #stInVario.SenJam.xDirectEdgePos OR #stInVario.SenNextSep.xDirectEdgePos OR #fbStateManager.tOutTimeInStep > T#20s THEN
+ #xVarioRelease := FALSE;
+ ELSE
+ #xVarioRelease := TRUE;
+ END_IF;
+
+ IF #stInVario.SenLastPos.xDirectEdgePos AND NOT #tOfLastPos.Q AND #arInOutJamFinger[1].bStatus.%X0 THEN
+ "FC_Route"(xInSingle := FALSE,
+ xInSeparate := FALSE,
+ xInSepEdge := TRUE,
+ xInSensor := FALSE,
+ xInDelay := FALSE,
+ stInCarrier := #stEmptyCarrier,
+ stOutBookingInfo => #stBookingInfo,
+ arJamEntr := #arInOutJamFinger,
+ arOnTheWay := #arEmptyCarrier,
+ arJamExit := #arInOutJamExit);
+ END_IF;
+
+ IF #fbConvVario.xOutConveyorReady THEN
+ #nState := "VarioStep_WaitForMfr";
+ ELSE
+ #tmpReasonForStop := "Rsn_GeneralError";
+ END_IF;
+ END_REGION *)
+
+ #c1100_StepScannerTrig1:
+ REGION 1100: Scanner Trigger 1
+
+ // akt. Zustand
+ #sStateText := 'Scanner Trigger 1';
+
+ ///////// Ausgänge /////////
+
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+
+ IF #fbBarcodeReader.xOutReadyForNewScan THEN //Scanner bereit
+ #xStartScan := TRUE; //Startbefehl
+ END_IF;
+
+ ///////// Timer //////////
+
+ //////// Transition ////////
+
+ IF #fbBarcodeReader.xOutReadingDone THEN //Scanner Rückmeldung
+ #xStartScan := FALSE;
+ #nState := #c1200_StepScannerEval1; //Weiter
+ END_IF;
+ END_REGION
+
+ #c1200_StepScannerEval1:
+ REGION 1200: Scanner Evaluation 1
+
+ // akt. Zustand
+ #sStateText := 'Scanner Evaluation 1';
+
+ ///////// Ausgänge /////////
+
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+
+ // Logic - TODO in eigenen FC packen?..
+
+ IF #fbBarcodeReader.xOutCodeGood THEN
+ #nBarcodeResult := LINT_TO_DINT(#fbBarcodeReader.#nOutBarcode); // Good read vom Barcode reader übernehmen
+
+ REGION Event log Good read
+ #xGoodRead := TRUE; // Trigger
+ #stEventGoodRead.nScanType := 4;
+ #stEventGoodRead.sBarcode := DELETE(IN := DINT_TO_STRING(#nBarcodeResult), L := 1, P := 1);
+ #stEventGoodRead.sReaderId := DELETE(IN := INT_TO_STRING(#stInBarcodeReader.Settings.#nStation), L := 1, P := 1);
+ END_REGION
+ REGION Gerade Zahl erkannt
+ IF (((#nBarcodeResult / 10) MOD 100) MOD 2 <> 1) THEN //anderes Ergebnis als 1 bedeutet, (xxxxxYYx) YY=gerade, also hinteres Bein von MiniTrolley
+ #xCodeEven := TRUE; //Bit sagt Separator dass hinteres Bein und nicht erstes zur Korrektur in Schrittkette
+ // #nBarcodeTarget := #nBarcodeTarget - 10; //Mache danach die gerade Zahl zur ungeraden UPDATE: WEGEN 8. ZIFFER KLAPPT DAS SO NICHT
+ #nBarcodeHelp := (#nBarcodeResult / 10) - 1;
+
+ "FC_Ean8_CheckDigit"(sInDigits := DELETE(IN := DINT_TO_STRING(IN := #nBarcodeHelp), L := 1, P := 1),
+ sOutBarcode => #sBarcodeString,
+ nOutBarcode => #nBarcodeResult);
+
+ // #sOutBarcode := #sBarcodeString;
+ END_IF;
+ END_REGION
+
+ ELSIF #fbBarcodeReader.#xOutCodeBad THEN
+ #nBarcodeResult := #arInOutJamEntr[1].nBarcode; //erwarteter Barcode wird aus JamDaten übernommen
+ END_IF;
+
+ IF (#nBarcodeResult > 100) AND
+ (#nBarcodeResult < 2147483647) AND // Good Read (2.147.483.647 Maximum von DINT)
+ (#arInOutJamEntr[1].nBarcode = 0 OR #arInOutJamEntr[1].nBarcode = 1) THEN //Wenn keine Daten oder ein Dummy erwartet werden
+
+ #xTmpCorrection := TRUE;
+
+ // REGION Carr_Glob_Correction
+
+ // "FC_CARR_GLOB_CORRECTION_INBOUND"(xInStart := TRUE, //Führe Korrektur aus
+ // nInBarcodeScan := #nBarcodeResult,
+ // nInStation := #stInBarcodeReader.Settings.nStation,
+ // arOutEventLogInfo => #arEventCorrectionInfo,
+ // InOutCarrierExpect := #arInOutJamEntr[1]);
+ // END_REGION
+
+
+ // IF NOT #xTemp THEN
+ // ;
+ // // #stInOutCarrier.stCarrData.nNrOfScans += 1;
+ // ELSE
+ // #arInOutJamEntr[1].nDestination := "cDestNONE"; //neuer Carrier // TODO
+ // // #stInOutCarrier.stCarrData.nNrOfScans += 1;
+ // #arInOutJamEntr[1].nBarcode := #nBarcodeResult; //Hier werden neue Carrier im System angelegt
+ // #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ // END_IF;
+
+ // REGION Event Log New Carrier
+
+ // #xNewCarrier := TRUE; // Trigger
+ // #stEventNew.nScanType := 2;
+ // #stEventNew.sBarcode := DELETE(IN := DINT_TO_STRING(#arInOutJamEntr[1].nBarcode), L := 1, P := 1);
+ // #stEventNew.sDest := DELETE(IN := INT_TO_STRING(#arInOutJamEntr[1].nDestination), L := 1, P := 1);
+ // #stEventNew.sReaderId := DELETE(IN := INT_TO_STRING(#stInBarcodeReader.Settings.#nStation), L := 1, P := 1);
+
+ // END_REGION
+ ELSIF
+ (#nBarcodeResult > 100) AND
+ (#nBarcodeResult < 2147483647) AND // Good Read (2.147.483.647 Maximum von DINT)
+ #arInOutJamEntr[1].nBarcode = #nBarcodeResult THEN //Barcodes stimmen überein ODER es wird hier gelandet mit BadRead wobei normaler Barcode erwartet wird-> mache normal weiter
+ ;
+ ELSIF
+ (#nBarcodeResult > 100) AND
+ (#nBarcodeResult < 2147483647) AND
+ #arInOutJamEntr[1].nBarcode <> #nBarcodeResult AND //Barcodes stimmen nicht überein, erwarteter Carrier enthält aber normalen Barcode
+ #arInOutJamEntr[1].nBarcode <> 0 AND
+ #arInOutJamEntr[1].nBarcode <> 1 THEN
+
+ #xTmpCorrection := TRUE;
+
+ // REGION Carr_Glob_Correction
+
+ // "FC_CARR_GLOB_CORRECTION_INBOUND"(xInStart := TRUE, //Führe Korrektur aus
+ // nInBarcodeScan := #nBarcodeResult,
+ // nInStation:= #stInBarcodeReader.Settings.nStation,
+ // arOutEventLogInfo => #arEventCorrectionInfo,
+ // InOutCarrierExpect := #arInOutJamEntr[1]);
+ // END_REGION
+
+ // IF NOT #xTemp THEN
+ // ;
+ // // #stInOutCarrier.stCarrData.nNrOfScans += 1;
+ // ELSE
+ // #arInOutJamEntr[1].nDestination := "cDestNONE"; //neuer Carrier // TODO
+ // // #stInOutCarrier.stCarrData.nNrOfScans += 1;
+ // #arInOutJamEntr[1].nBarcode := #nBarcodeResult; //Hier werden neue Carrier im System angelegt
+ // #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ // END_IF;
+
+ // REGION Event Log New Carrier
+
+ // #xNewCarrier := TRUE; // Trigger
+ // #stEventNew.nScanType := 2;
+ // #stEventNew.sBarcode := DELETE(IN := DINT_TO_STRING(#arInOutJamEntr[1].nBarcode), L := 1, P := 1);
+ // #stEventNew.sDest := DELETE(IN := INT_TO_STRING(#arInOutJamEntr[1].nDestination), L := 1, P := 1);
+ // #stEventNew.sReaderId := DELETE(IN := INT_TO_STRING(#stInBarcodeReader.Settings.#nStation), L := 1, P := 1);
+
+ // END_REGION
+
+
+ ELSE // Bad Read, falls nichts oder Dummy erwartet wird -> HANDLING TO DO!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ #arInOutJamEntr[1].nBarcode := 2; //unbekannter Carrier mit Badread, erwartet 0 und physikalisch vorhanden
+ #arInOutJamEntr[1].nDestination := 123; //todo
+
+ REGION Event Log unknown Carrier
+
+ #xUnknownCarrier := TRUE; // Trigger
+ #stEventUnknown.nScanType := 3;
+ #stEventUnknown.sBarcode := DELETE(IN := DINT_TO_STRING(#arInOutJamEntr[1].nBarcode), L := 1, P := 1);
+ #stEventUnknown.sDest := DELETE(IN := INT_TO_STRING(#arInOutJamEntr[1].nDestination), L := 1, P := 1);
+ #stEventUnknown.sReaderId := DELETE(IN := INT_TO_STRING(#stInBarcodeReader.Settings.#nStation + 50), L := 1, P := 1);
+
+ END_REGION
+ END_IF;
+
+ #xHandshakeScan := TRUE;
+
+ #nOutScanResult := #nBarcodeResult;
+ #xOutNewScan := TRUE;
+ ///////// Timer //////////
+
+ //////// Transition ////////
+ IF #stInSeparator1.Settings.xPluggedPart THEN
+ #nState := #c1300_StepCheckLoad;
+ ELSIF #xCodeEven THEN
+ #xCodeEven := FALSE;
+ #nState := #c2000_StepWaitForTrolley2; //Scanner bestätigt zweites Bein gelesen -> Korrigieren!
+ ELSE
+ #nState := #c1400_StepCheckSep1;
+ END_IF;
+
+ END_REGION
+
+ #c1300_StepCheckLoad:
+ REGION 1300: Check Load
+
+ // akt. Zustand
+ #sStateText := 'Check Load';
+
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+ #xHandshakeScan := FALSE;
+ #xReleaseTrolleySep1 := FALSE;
+ #xOutNewScan := FALSE;
+ ///////// Timer //////////
+
+ //////// Transition ////////
+ #tmpActUnivTon := TRUE;
+ IF (#arInOutJamEntr[1].bStatus.%X1 AND #xTrolleyWithPart) OR //Daten und physikalisch -> beladen Ok!
+ (NOT #arInOutJamEntr[1].bStatus.%X1 AND #xTrolleyWoPart) //Daten und physikalisch -> unbeladen Ok!
+ THEN
+ #nState := #c1400_StepCheckSep1; // Weiter
+ ELSIF #fbStateManager.tOutUnivTonR > T#3s THEN
+ #tmpReasonForStop := 123; // TODO: Beladekontrolle Fehler
+ END_IF;
+
+ END_REGION
+
+ #c1400_StepCheckSep1:
+ REGION 1400: Check Separator
+ // akt. Zustand
+ #sStateText := 'Check Sep';
+
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+ #xOutNewScan := FALSE;
+ ///////// Timer //////////
+
+ //////// Transition ////////
+ #xVarioReq := TRUE;
+ #tmpActUnivTon := TRUE;
+ IF #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForReq" THEN // Separator ist bereit
+ #nState := #c1500_StepReleaseSep1;
+ ELSIF #fbStateManager.tOutUnivTonR > T#3s THEN
+ #tmpReasonForStop := "Rsn_SubError"; // SubTRO: Separator ist nicht bereit
+ END_IF;
+
+ END_REGION
+
+ #c1500_StepReleaseSep1:
+ REGION 1500: Release Sep 1
+ // akt. Zustand
+ #sStateText := 'Leave Sep 1';
+
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+ #stOutPriorityManager.xTransportReq := FALSE; // Beim ersten Bein noch nicht nötig
+
+ #xReleaseTrolleySep1 :=
+ (NOT #fbSepWait.xOutLockSep1 AND (* #xInCarouselRun AND *)#xInSftyOk) AND // Erste Achse darf vereinzelt werden
+ (NOT #stInSettings.bSepType.%X0 OR
+ (#xInRelease AND #stInSettings.bSepType.%X0))
+ ;
+
+ //////// Transition ////////
+ IF #fbSeparator1.stOutMainTro.nStatus = "SepState_Finish" THEN
+ #nState := #c2000_StepWaitForTrolley2;
+ ELSIF #xReleaseTrolleySep1 AND #tOnSvReleaseSep.Q THEN
+ #tmpReasonForStop := "Rsn_SubError"; // Timeout-Fehler im SubTRO "Separator": Freigabe erteilt, aber Separator gibt keine Rückmeldung an MainTRO
+ END_IF;
+
+ END_REGION
+
+ #c2000_StepWaitForTrolley2:
+ REGION 2000: Wait for Trolley 2
+ //akt. Zustand
+ #sStateText := 'Wait for Trolley 2';
+ ///////// Ausgänge /////////
+
+ ///////// Statics //////////
+
+ #xReleaseTrolleySep1 := FALSE;
+ #xOutNewScan := FALSE;
+ //Korrektur 2.Bein kommt nicht
+ // IF NOT #fbSeparator1.stOutMainTro.xBtPresent (* AND #xInCarouselRun *) AND NOT #stInSeparator1.Settings.xPluggedScanner AND #fbStateManager.tOutTimeInStep > T#3s THEN
+ // #nState := #c1000_StepWaitForTrolley1;
+ // END_IF;
+
+ //Transition
+ IF NOT #stInOutHMI.UDT_Ctrl.xPause THEN
+ IF #fbSeparator1.stOutMainTro.xBtPresent AND //Separator meldet Belegung
+ #arInOutJamEntr[1].bStatus.%X0 // Carrier ist online
+ AND (#xInRelease AND NOT #stInSettings.bSepType.%X0) OR #stInSettings.bSepType.%X0
+ THEN
+ IF #xReadSecondLeg // zweites Bein muss gelesen werden (TODO!!!!)
+ AND #stInSeparator1.Settings.xPluggedScanner // Scanner verbaut?
+ THEN
+ #nState := #c2100_StepScannerTrig2; // Nächster Schritt -> Scannen
+ ELSE
+ #nState := #c2300_StepCheckSep2; // Nächster Schritt -> Separator
+ END_IF;
+ END_IF;
+ END_IF;
+ END_REGION
+
+ #c2100_StepScannerTrig2:
+ REGION 2100: Scanner Trigger 2
+
+ // akt. Zustand
+ #sStateText := 'Scanner Trigger 2';
+
+ ///////// Ausgänge /////////
+
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+
+ IF #fbBarcodeReader.xOutReadyForNewScan THEN
+ #xStartScan := TRUE;
+ END_IF;
+
+ ///////// Timer //////////
+
+ //////// Transition ////////
+
+ IF #fbBarcodeReader.xOutReadingDone THEN
+ #xStartScan := FALSE;
+ #nState := #c2200_StepScannerEval2;
+ END_IF;
+ END_REGION
+
+ #c2200_StepScannerEval2:
+ REGION 2200: Scanner Evaluation 2
+
+ // akt. Zustand
+ #sStateText := 'Scanner Evaluation 2';
+
+ ///////// Ausgänge /////////
+
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+
+ // Logic
+
+ IF #fbBarcodeReader.xOutCodeGood THEN
+ #nBarcodeResult := LINT_TO_DINT(#fbBarcodeReader.#nOutBarcode); // Good read vom Barcode reader
+ ELSIF #fbBarcodeReader.#xOutCodeBad THEN
+ #nBarcodeResult := #arInOutJamEntr[1].nBarcode; //erwarteter Barcode wird aus JamDaten übernommen
+ END_IF;
+
+ IF (#nBarcodeResult > 100) AND
+ (#nBarcodeResult < 2147483647) AND // Good Read (2.147.483.647 Maximum von DINT)
+ (#arInOutJamEntr[1].nBarcode = 0 OR #arInOutJamEntr[1].nBarcode = 1) THEN //Wenn keine Daten oder ein Dummy erwartet werden
+ REGION TODO
+ (* "FC_CARR_GLOB_CORRECTION"(xInStart := TRUE, //Führe Korrektur aus
+ nInBarcodeScan := #nBarcodeResult,
+ nInStation := 0, // todo
+ xOutNotFound => #xTemp,
+ arOutEventLogInfo => #arEventCorrectionInfo,
+ InOutCarrierExpect := #arInOutJamEntr1[1]); *)
+ END_REGION
+
+
+ IF NOT #xTemp THEN
+ ;
+ // #stInOutCarrier.stCarrData.nNrOfScans += 1;
+ ELSE
+ #arInOutJamEntr[1].nDestination := "cDestNONE"; //neuer Carrier // TODO
+ // #stInOutCarrier.stCarrData.nNrOfScans += 1;
+ #arInOutJamEntr[1].nBarcode := #nBarcodeResult; //Hier werden neue Carrier im System angelegt
+ #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ END_IF;
+ ELSIF
+ (#nBarcodeResult > 100) AND
+ (#nBarcodeResult < 2147483647) AND // Good Read (2.147.483.647 Maximum von DINT)
+ #arInOutJamEntr[1].nBarcode = #nBarcodeResult THEN //Barcodes stimmen überein ODER es wird hier gelandet mit BadRead wobei normaler Barcode erwartet wird-> mache normal weiter
+ ;
+ ELSIF
+ (#nBarcodeResult > 100) AND
+ (#nBarcodeResult < 2147483647) AND
+ #arInOutJamEntr[1].nBarcode <> #nBarcodeResult AND //Barcodes stimmen nicht überein, erwarteter Carrier enthält aber normalen Barcode
+ #arInOutJamEntr[1].nBarcode <> 0 AND
+ #arInOutJamEntr[1].nBarcode <> 1 THEN
+ ;
+ REGION TODO
+ (* "FC_CARR_GLOB_CORRECTION"(xInStart := TRUE, //Führe Korrektur aus
+ nInBarcodeScan := #nBarcodeResult,
+ nInStation := 0, // todo
+ xOutNotFound => #xTemp,
+ arOutEventLogInfo => #arEventCorrectionInfo,
+ InOutCarrierExpect := #arInOutJamEntr1[1]); *)
+ END_REGION
+
+ ELSE // Bad Read, falls nichts oder Dummy erwartet wird -> HANDLING TO DO!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ #arInOutJamEntr[1].nBarcode := 2; //unbekannter Carrier mit Badread, erwartet 0 und physikalisch vorhanden
+ #arInOutJamEntr[1].nDestination := 123; //todo
+ END_IF;
+
+ #xHandshakeScan := TRUE;
+
+ ///////// Timer //////////
+
+ //////// Transition ////////
+ #nState := #c2300_StepCheckSep2;
+
+ END_REGION
+
+ #c2300_StepCheckSep2:
+ REGION 2300: Check Separator
+ // akt. Zustand
+ #sStateText := 'Check Sep';
+
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+ #xHandshakeScan := FALSE;
+ #xReleaseTrolleySep1 := FALSE;
+ ///////// Timer //////////
+
+ //////// Transition ////////
+ #tmpActUnivTon := TRUE;
+ IF #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForReq" THEN // Separator ist bereit
+ #nState := #c2400_StepCheckJam;
+ ELSIF #fbStateManager.tOutUnivTonR > T#3s THEN
+ #tmpReasonForStop := "Rsn_SubError"; // SubTRO: Separator ist nicht bereit
+ END_IF;
+
+ END_REGION
+
+ #c2400_StepCheckJam:
+ REGION 2400: Check Jam
+ // akt. Zustand
+ #sStateText := 'Check Jam';
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+
+ ///////// Timer //////////
+ //////// Transition ////////
+
+ IF (#stInOutJamFinger.Status.nCount = #stInOutJamFinger.Config.nCapacitySet) //Zielstaubereich ist datentechnisch voll
+ THEN
+ #tmpReasonForStop := "Rsn_JamNextError";
+ ELSE
+ #nState := #c2500_StepWaitForConvRdy;
+ END_IF;
+
+ END_REGION
+
+ #c2500_StepWaitForConvRdy:
+ REGION 2500: Wait for Finger Conveyor
+ // akt. Zustand
+ #sStateText := 'Wait Finger Conv';
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+ #xReleaseTrolleySep1 := FALSE;
+ // #xVarioReq := TRUE; // Anforderung an Fingerförderer
+
+ ///////// Timer //////////
+ //////// Transition ////////
+ IF #fbConvVario.xOutConveyorReady THEN
+ #nState := #c2600_StepReleaseSep2;
+ END_IF;
+ END_REGION
+
+ #c2600_StepReleaseSep2:
+ REGION 2600: Leave Sep
+
+ // akt. Zustand
+ #sStateText := 'Leave Sep';
+
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+
+ #xReleaseTrolleySep1 := #xInSftyOk AND #fbConvVario.xOutConveyorReady (* AND NOT #stInMfr.xPause *)AND
+ #stInOutJamFinger.Status.nCount < #stInOutJamFinger.Config.nCapacitySet AND
+ NOT #stInOutJamFinger.Status.bByte.%X2 AND NOT #stInOutJamEntr.Status.bByte.%X3 AND
+ NOT #fbSepWait.xOutLockSep1;
+ #xVarioTrigger := FALSE;
+ ///////// Timer //////////
+
+ // Reason for Stop
+ (* IF #stInMfr.xPause THEN
+ #tmpReasonForStop := "Rsn_MfrPausedTro";
+ END_IF; *)
+
+ IF NOT #fbConvVario.xOutConveyorReady THEN
+ #tmpReasonForStop := "Rsn_CarouselError";
+ END_IF;
+
+ //////// Transition ////////
+ IF #fbSeparator1.stOutMainTro.nStatus = "SepState_Finish" THEN
+
+ // REGION Buchen Entry -> Finger
+ // "FC_Route_1"(xInSingle := FALSE,
+ // xInSeparate := FALSE,
+ // xInSepEdge := TRUE,
+ // xInSensor := FALSE,
+ // xInDelay := FALSE,
+ // stInCarrier := #stEmptyCarrier,
+ // stOutBookingInfo => #stBookingInfo,
+ // arJamEntr := #arInOutJamEntr,
+ // arOnTheWay := #arEmptyCarrier,
+ // arJamExit := #arInOutJamFinger);
+ // END_REGION
+
+ // #xVarioTrigger := TRUE;
+ // #xEventLogRoute := TRUE;
+ // #nState := #c1000_StepWaitForTrolley1;
+ //NEU!!!!!!!!!!
+ #xLastPosReached := TRUE;
+
+ #nState := #c2700_WaitForCarrInPos;
+ ELSIF #xReleaseTrolleySep1 AND #tOnSvReleaseSep.Q THEN
+ #tmpReasonForStop := "Rsn_SubError"; // Timeout-Fehler im SubTRO "Separator": Freigabe erteilt, aber Separator gibt keine Rückmeldung an MainTRO
+ END_IF;
+
+ END_REGION
+
+ #c2700_WaitForCarrInPos:
+ REGION 2700: Wait for Sensor "In Pos"
+
+ // akt. Zustand
+ #sStateText := 'Wait for Sensor "In Pos"';
+
+ ///////// Ausgänge /////////
+ ///////// Statics //////////
+
+ #xReleaseTrolleySep1 := FALSE;
+ ///////// Timer //////////
+
+ IF NOT #fbConvVario.xOutConveyorReady THEN
+ #tmpReasonForStop := "Rsn_CarouselError";
+ END_IF;
+
+ //////// Transition ////////
+
+ IF (#stInVario.stSenCarrInPos.xDbncdSensor AND (#stInVario.stSenCarrInPos.tDirectChangeLast > #stInVario.Settings.tCarrierInPosDelay)) OR //Timer ggf. umbennen, wird ansonsten aktuell nirgendwo verwendet
+ //#FTrig_CarrInPos.Q
+ #xCarrierSensorPass
+ THEN
+ // IF (#stInVario.stSenCarrInPos.xDbncdSensor AND #stInVario.stSenCarrInPos.tDirectChangeLast > T#1s AND #fbStateManager.tOutTimeInStep > T#1s) OR // Sensor belegt + Mindestzeit vergangen
+ // (#fbStateManager.tOutTimeInStep > t#3s) // Timeout
+ // THEN
+ #stTempCarrier := #arInOutJamEntr[1];
+
+ REGION Buchen Entry -> Finger
+ "FC_Route"(xInSingle := FALSE,
+ xInSeparate := FALSE,
+ xInSepEdge := TRUE,
+ xInSensor := FALSE,
+ xInDelay := FALSE,
+ stInCarrier := #stEmptyCarrier,
+ stOutBookingInfo => #stBookingInfo,
+ arJamEntr := #arInOutJamEntr,
+ arOnTheWay := #arEmptyCarrier,
+ arJamExit := #arInOutJamFinger);
+ END_REGION
+
+ #xCarrierSensorPass := FALSE;
+
+ #xBooked := TRUE;
+
+ #xLastPosReached := FALSE;
+
+ #xVarioTrigger := TRUE;
+ #xEventLogRoute := TRUE;
+ #nState := #c1000_StepWaitForTrolley1;
+ ELSIF #fbStateManager.tOutTimeInStep > #stInVario.Settings.tTimeOutCarrierInPos AND NOT #stInVario.stSenCarrInPos.xDirectSensor AND #stInVario.stSenCarrInPos.tDirectChangeLast > #stInVario.Settings.tTimeOutCarrierInPos THEN // Wenn wir hier stecken bleiben, könnte man eine Korrektur versuchen... z.B. zurück zu nState = 2000
+ #nState := #c2000_StepWaitForTrolley2;
+ #tmpReasonForStop := "Rsn_SubError";
+ #xBtEmpty := TRUE; //provisorisch
+ END_IF;
+
+ // //ELSIF #fbStateManager.tOutTimeInStep > T#5s THEN
+ // #tmpReasonForStop := "Rsn_SubError";
+ // #xBtEmpty := TRUE; //provisorisch
+ // END_IF;
+ END_REGION ;
+
+
+ (* // "VarioStep_CheckVario":
+ // REGION 2550: Check Vario
+
+ // // akt. Zustand
+ // #sStateText := 'Check Vario';
+
+ // ///////// Ausgänge /////////
+ // ///////// Statics //////////
+
+ // #xReleaseTrolleySep1 := FALSE;
+ // ///////// Timer //////////
+
+ // // Reason for Stop
+
+ // //////// Transition ////////
+ // IF NOT #arInOutJamExit[#nArrayMaxExit].bStatus.%X0 AND NOT #stInVario.SenJam.xDbncdSensor AND
+ // #xLastPosReached AND NOT #stInMfr.xPause THEN //darf takten wenn letzte Position erreicht und nachfolgender Bereich frei ist
+ // #xLastPosReached := FALSE;
+ // #xVarioTrigger := TRUE;
+ // #nState := "VarioStep_VarioMove";
+ // //vorderstes Teil (LastPos) wird in Exit-Jam geschoben
+ // REGION Buchen Finger -> Exit
+ // "FC_Route"(xInSingle := FALSE,
+ // xInSeparate := FALSE,
+ // xInSepEdge := TRUE,
+ // xInSensor := FALSE,
+ // xInDelay := FALSE,
+ // stInCarrier := #stEmptyCarrier,
+ // stOutBookingInfo => #stBookingInfo,
+ // arJamEntr := #arInOutJamFinger,
+ // arOnTheWay := #arEmptyCarrier,
+ // arJamExit := #arInOutJamExit);
+ // END_REGION
+
+ // ELSIF NOT #xLastPosReached AND NOT #stInMfr.xPause THEN //darf takten wenn letzte Position zuvor noch nicht erreicht wurde
+ // REGION Takten ohne Buchen
+ // #xLastPosReached := FALSE;
+ // #xVarioTrigger := TRUE;
+ // #nState := "VarioStep_VarioMove";
+ // END_REGION
+
+ // END_IF;
+
+ // END_REGION
+
+ // "VarioStep_VarioMove":
+ // REGION 2575: Vario Move
+
+ // // akt. Zustand
+ // #sStateText := 'Vario Move';
+
+ // ///////// Ausgänge /////////
+ // ///////// Statics //////////
+
+ // #xReleaseTrolleySep1 := FALSE;
+ // #xVarioTrigger := FALSE;
+ // ///////// Timer //////////
+
+
+ // //////// Transition ////////
+
+ // IF #stInVario.SenLastPos.xDirectEdgePos AND NOT #tOfLastPos.Q THEN
+ // #xLastPosReached := TRUE;
+ // END_IF;
+
+ // IF #fbConvVario.xOutConveyorReady THEN
+ // #nState := "VarioStep_WaitForMfr";
+ // END_IF;
+
+ // END_REGION *)
+
+ END_CASE;
+
+ END_REGION
+
+ REGION Timer - Überwachungszeit
+
+ REGION Separator
+ #tOnSvReleaseSep(IN := (#nState = #c1500_StepReleaseSep1 OR #nState = #c2600_StepReleaseSep2) AND #xReleaseTrolleySep1,
+ PT := T#3s);
+ END_REGION
+
+ REGION Carrier in Pos
+ #tOfLastPos(IN := ((#nState = #c2600_StepReleaseSep2) OR (#nState = #c2700_WaitForCarrInPos)) AND #stInVario.stSenCarrInPos.xDirectEdgePos,
+ PT := #stInVario.Settings.tCarrierInPosEdgeDelay); //z.B.
+
+ #FTrig_CarrInPos(CLK := #tOfLastPos.Q);
+
+ IF #FTrig_CarrInPos.Q THEN
+ #xCarrierSensorPass := true;//#FTrig_CarrInPos.Q;
+ END_IF;
+ END_REGION
+
+ END_REGION
+
+ REGION Haltegrund Schrittkette
+ #stActRequest.nReasonForStop := #tmpReasonForStop; //tmp aus Schrittkette übernehmen
+ END_REGION
+
+ REGION Beladekontrolle
+ //Beladekontrolle aktiviert
+ IF #stInSeparator1.Settings.xPluggedPart THEN
+
+ //Trolley beladen
+ #xTrolleyWithPart :=
+ #stInSeparator1.Settings.xPluggedPart AND
+ #stInSeparator1.stSenInSep.xDbncdSensor
+ AND #stInSeparator1.stSenPart.xDirectSensor
+ AND #stInSeparator1.stSenPart.tDirectChangeLast > #stInSettings.tPartSenHigh;
+
+ //Trolley nicht beladen
+ #xTrolleyWoPart :=
+ #stInSeparator1.Settings.xPluggedPart AND
+ #stInSeparator1.stSenInSep.xDbncdSensor AND
+ #stInSeparator1.stSenInSep.tDirectChangeLast > #stInSettings.tInSenHigh AND
+ NOT #stInSeparator1.stSenPart.xDirectSensor;
+
+ //Plausibel?
+ IF #stInSeparator1.Settings.xPluggedPart AND ((#arInOutJamEntr[1].bStatus.%X1 AND #xTrolleyWoPart) OR
+ (NOT #arInOutJamEntr[1].bStatus.%X1 AND #xTrolleyWithPart))
+ THEN
+ #wErrorWord.%X2 := TRUE;
+ ELSE
+ #wErrorWord.%X2 := FALSE;
+ END_IF;
+ ELSE
+ #xTrolleyWithPart := #xTrolleyWoPart := FALSE; // Beladekontrolle (Sensor) nicht verbaut
+ END_IF;
+ END_REGION
+
+ REGION Dummy Handling
+
+ #nArrayMax := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJamEntr, DIM := 1));
+
+ REGION Dummy erstellen
+ IF #stInSettings.xIsBorner THEN
+ IF #nBarcodeEmpty > 1999 OR #nBarcodeEmpty < 1000 THEN
+ #nBarcodeEmpty := 1000;
+ ELSE
+ IF #nState = 2600 AND #fbSeparator1.xOutTrolleyReleasedEdge THEN
+ #nBarcodeEmpty += 1;
+ END_IF;
+ END_IF;
+
+ IF #fbSeparator1.stOutMainTro.xBtPresent AND
+ #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForReq" AND
+ #stInSeparator1.stSenInSep.tDirectChangeLast > #stInSettings.tDummyTimeBorner AND
+ #arInOutJamEntr[1] = #tmpCarrierEmpty
+ THEN
+ #arInOutJamEntr[1].nBarcode := #nBarcodeEmpty;
+ #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ #arInOutJamEntr[1].nDestination := #stInSettings.nBornerDest;
+ END_IF;
+ ELSE
+ IF #fbSeparator1.stOutMainTro.xBtPresent AND
+ #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForReq" AND
+ #stInSeparator1.stSenInSep.tDirectChangeLast > T#3s AND // variabel machen, Dummy immer anlegen?, Unterscheidung bei Borner?
+ #arInOutJamEntr[1] = #tmpCarrierEmpty
+ THEN
+ #arInOutJamEntr[1].nBarcode := #cCarrierDummy;
+ #arInOutJamEntr[1].bStatus.%X0 := TRUE;
+ END_IF;
+
+ END_IF;
+
+ END_REGION
+
+ REGION Dummy löschen - ÜBERARBEITEN!
+ IF #nArrayMax > 1 THEN //Wenn ein einzelner Dummy oder Barcode 2 vorhanden ohne Belegung nach 2 Min löschen (Ausnahme in Qualität)
+ IF (#arInOutJamEntr[1] = #stCarrierDummy)
+ AND #arInOutJamEntr[2] = #tmpCarrierEmpty AND
+ NOT #stInSeparator1.stSenInSep.xDirectSensor AND #stInSeparator1.stSenInSep.tDirectChangeLast > T#8s AND
+ #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForBt" AND #fbSeparator1.#fbStateManager.tOutTimeInStep > T#8s
+ THEN
+ #arInOutJamEntr[1] := #tmpCarrierEmpty;
+ ELSIF (#arInOutJamEntr[1] = #stCarrierDummy)
+ AND (#arInOutJamEntr[2] = #stCarrierDummy OR #arInOutJamEntr[2] <> #stCarrierDummy) AND
+ NOT #stInSeparator1.stSenInSep.xDirectSensor AND #stInSeparator1.stSenInSep.tDirectChangeLast > T#8s AND
+ #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForBt" AND #fbSeparator1.#fbStateManager.tOutTimeInStep > T#8s
+ THEN
+ #arInOutJamEntr[1] := #tmpCarrierEmpty;
+ "FC_TSHR_Shift"(xInShiftBack := TRUE,
+ arTSHR := #arInOutJamEntr);
+ END_IF;
+ ELSIF #nArrayMax = 1 THEN
+ IF (#arInOutJamEntr[1] = #stCarrierDummy) AND
+ NOT #stInSeparator1.stSenInSep.xDirectSensor AND #stInSeparator1.stSenInSep.tDirectChangeLast > T#8s AND
+ #fbSeparator1.stOutMainTro.nStatus = "SepState_WaitForBt" AND #fbSeparator1.#fbStateManager.tOutTimeInStep > T#8s
+ THEN
+ #arInOutJamEntr[1] := #tmpCarrierEmpty;
+ END_IF;
+ END_IF;
+
+ END_REGION
+
+ END_REGION
+
+ REGION Monitoring
+
+ REGION Carrier kommt nicht an / Daten ohne Belegung
+ #tOnMonCarrArrive(IN := #arInOutJamEntr[1].bStatus.%X0 AND NOT #stInSeparator1.stSenInSep.xDirectSensor,
+ PT := #stInSeparator1.Settings.tDelayToNextItem,
+ Q => #wErrorWord.%X10); //TODO
+
+ #fbMonitoringCarrNotArrive.stSettings.nErrorType := 1;
+ #fbMonitoringCarrNotArrive.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonitoringCarrNotArrive.stSettings.xSelfQuit := TRUE;
+ #fbMonitoringCarrNotArrive(sInFctnName := '',
+ wInTextListId_Function := 1000,
+ wInTextListId_Message := 1000,
+ sInPrefix := #stInOutHMI.UDT_Config.sName,
+ sInSuffix := #stInOutHMI.UDT_Separator1.stConfig.sName,
+ xInQuitError := #stInOutMachineState.xQuitError,
+ xInSignal := NOT #wErrorWord.%X10,
+ sInAlarmMessage := 'Carrier kommt nicht am Separator an',
+ InOutMachineState := #stInOutMachineState);
+
+ END_REGION
+
+ REGION Carrier ohne Daten
+
+ IF #stInSeparator1.stSenInSep.xDbncdSensor AND #stInSeparator1.stSenInSep.tDirectChangeLast > T#5s AND NOT #arInOutJamEntr[1].bStatus.%X0 THEN
+ #wErrorWord.%X5 := TRUE;
+ ELSE
+ #wErrorWord.%X5 := FALSE;
+ END_IF;
+
+ #fbMonitoringCarrWoData.stSettings.nErrorType := 1;
+ #fbMonitoringCarrWoData.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonitoringCarrWoData.stSettings.xSelfQuit := TRUE;
+ #fbMonitoringCarrWoData(sInFctnName := '',
+ wInTextListId_Function := 1000,
+ wInTextListId_Message := 1001,
+ sInPrefix := #stInOutHMI.UDT_Config.sName,
+ sInSuffix := #stInOutHMI.UDT_Separator1.stConfig.sName,
+ InOutMachineState := #stInOutMachineState,
+ xInQuitError := #stInOutMachineState.xQuitError,
+ xInSignal := NOT #wErrorWord.%X5,
+ sInAlarmMessage := 'Sep-Belegung ohne Daten');
+ END_REGION
+
+ #fbAlarmVarioMTinPos.stSettings.nNoMaxErrors := 1;
+ #fbAlarmVarioMTinPos.stSettings.nType := 2;
+ #fbAlarmVarioMTinPos.stSettings.sFctnName := '';
+ #fbAlarmVarioMTinPos(xInAlarm := #xBtEmpty,
+ nInAlarmNumber := 0,
+ sInPrefix := 'MT in Pos',
+ sInSuffix := '',
+ wInTextListId_Message := 300,
+ wInTextListId_Function := 300,
+ stInOutControlUnitCabinet := #stInOutMachineState);
+
+ END_REGION
+
+
+ REGION Motorüberwachung - todo
+ IF #nState = 40000 AND #fbStateManager.tOutTimeInStep > T#4s THEN
+ #xErrorMotor := TRUE;
+ ELSE
+ #xErrorMotor := FALSE;
+ END_IF;
+ END_REGION
+
+ REGION Fahrbedingungen für Vario
+
+ // IF #arInOutJamExit[1].bStatus.%X0 AND
+ // NOT #stInVario.SenJam.xDirectSensor AND #stInVario.SenJam.tDirectChangeLast > #stInVario.Settings.tFreeJam AND
+ // NOT #stInVario.SenNextSep.xDirectSensor AND #stInVario.SenNextSep.tDirectChangeLast > #stInVario.Settings.tFreeNextSep AND
+ // NOT #stInVario.SenSepVario.xDirectSensor AND #stInVario.SenSepVario.tDirectChangeLast > #stInVario.Settings.tFreeVarioSep THEN
+ // #xVarioRelease := TRUE;
+ // ELSE
+ // #xVarioRelease := FALSE;
+ // END_IF;
+
+ END_REGION
+
+ REGION Wartezeit Separator
+
+ #fbSepWait.stInTimes.tFreeSen1 := #stInSeparator1.Settings.tSenFree;
+ #fbSepWait.stInTimes.tTimerWait := #stInSeparator1.Settings.tSenWait;
+ #fbSepWait(stInSensor1 := #stInSeparator1.stSenInSep,
+ xInConvActive := TRUE);
+
+ END_REGION
+
+ REGION StateManager
+
+ #fbStateManager.stInSettings.nStartState := #c0100_StepUndefined;
+ #fbStateManager.stInSettings.nStartStateTestMode := #c0000_StepOff;
+ #fbStateManager.stInSettings.xActUnivTOn := TRUE;
+ #fbStateManager.stInSettings.xRestartAtStartState := FALSE;
+ #fbStateManager(xInFunctionEnabled := #stInOutMachineState.xRunning, // AND #xInSftyOk,
+ xInReset := #stInOutHMI.UDT_Ctrl.xReset OR #xInReset,
+ xInRunUnivTOn := #tmpActUnivTon,
+ xInTestMode := #xInTestMode,
+ nInOutState := #nState);
+
+ END_REGION
+
+ REGION Aufruf der Sub-TROs
+
+ REGION Separator 1
+
+ #fbSeparator1(xInReset := #stInOutHMI.UDT_Ctrl.xReset OR #xInReset,
+ xInErrQuit := #stInOutHMI.UDT_Ctrl.xErrorQuit OR #xInErrorQuit,
+ stInOutMainState := #stInOutMachineState,
+ stInSettings := #stInSeparator1.Settings,
+ xInConveyorRun := TRUE, //Gefälle...
+ stInTrolley := #stInSeparator1.stSenInSep,
+ xInReceiveReady := #xReleaseTrolleySep1,
+ stInOutHMI := #stInOutHMI.UDT_Separator1,
+ stInOutCarrDataInJam := #arInOutJamEntr);
+
+ #stInOutHMI.UDT_Separator1.stStatus.xNullBt := #stInOutHMI.UDT_Ctrl.xPause;
+ #stInOutHMI.UDT_Separator2.stStatus.xNullBt := #stInOutHMI.UDT_Ctrl.xPause;
+ END_REGION
+
+ REGION Vario Förderer
+
+
+
+
+
+ #fbConvVario(stInSettings := #stInVario.Settings,
+ xInAutomatic := #xInAutomatic,
+ xInErrorQuit := #xInErrorQuit OR #stInOutHMI.UDT_Ctrl.xErrorQuit,
+ xInReleaseEdge := #xVarioTrigger, // Separator Release Edge
+ stInSenConvFingerInPos := #stInVario.stSenFinger,
+ stInSenJam := #stInVario.stSenJam,
+ stInSenLastPos := #stInVario.stSenLastPos,
+ stInSenCarrInPos := #stInVario.stSenCarrInPos,
+ xInRequest := #xVarioReq AND (NOT #fbSepWait.xOutLockSep1 OR #xLastPosReached),//#xVarioReq AND NOT #fbSepWait.xOutLockSep1 AND NOT #stInOutHMI.UDT_Separator1.stControl.xLockSeparator,
+ xInMotorProtection := #xInMotorProtection,
+ stInStationSensor:= #stInStationSensor,// TEST
+ xInReleaseStation:= #xInReleaseStation,// TEST
+ xOutMotor => #xOutVarioMotor,
+ stInOutControlUnitCabinet := #stInOutMachineState,
+ stInOutHMI := #stInOutHMI.UDT_Vario1,
+ arInOutJamFinger := #arInOutJamFinger);
+
+
+
+ END_REGION
+
+ REGION Barcode Reader 1
+ #fbBarcodeReader(stInSettings := #stInBarcodeReader.Settings,
+ xInReset := #stInOutHMI.UDT_Ctrl.xReset,
+ xInHWError := false, // todo
+ xInStartReading := #xStartScan,
+ xInHandshakeDone := #xHandshakeScan,
+ stInOutInterface := #stInOutCognexInterface,
+ stInOutControlUnitCabinet := #stInOutMachineState,
+ stInOutHMI := #stInOutHMI.UDT_BarcodeReader2);
+ END_REGION
+
+ END_REGION
+
+ REGION BT zählen - NIU
+
+ CASE #stActRequest.nDirection OF
+ 0:
+ #stActRequest.nActNoStopper := 0;
+ 1:
+ #stActRequest.nActNoStopper := UDINT_TO_USINT(#fbSeparator1.stOutMainTro.nCounterBt - #stActRequest.nCntAtStartSep1);
+ END_CASE;
+
+
+ END_REGION
+
+ REGION HMI
+ #stInOutHMI.UDT_Config.nTroType := 5; //Vario
+
+ #stInOutHMI.UDT_State.nState := #nState;
+ #stInOutHMI.UDT_State.sState := #sStateText;
+
+ #stInOutHMI.UDT_State.xError :=
+ #fbSeparator1.wOutErrorWord > 0 OR
+ #stInOutHMI.UDT_Separator1.stStatus.bStatus = 2;
+ //usw.
+
+ END_REGION
+
+ REGION Ausgänge schreiben
+ #xOutBooked := #xBooked;
+ #stOutLastCarrier := #stTempCarrier;
+
+ REGION Output
+
+ #xOutStopper := #fbSeparator1.xOutStopper;
+ #xOutJamAtEntry1 := #fbSeparator1.stOutMainTro.xJamAtEntry;
+ #xOutCorrection := #xTmpCorrection;
+ // #xOutCarouselReq := ((#nState >= "VarioStep_CheckCorrectBt" AND #nState <= "VarioStep_LeaveSep")) (* AND
+ // NOT #stInMfr.xPause *);
+
+ END_REGION
+
+ END_REGION
+
+ REGION Event Logs
+ REGION Event: Route (Umbuchung)
+ #stBookingInfo.sJamSrc := #stInSettings.sJamSrc;
+ #stBookingInfo.sJamDest := #stInSettings.sJamDest;
+ #fbEventLog_Route(xInTrigger := #xEventLogRoute,
+ stInEventBookingInfo := #stBookingInfo);
+ END_REGION
+ END_REGION
+
+ // Pro Event wird ein Aufruf benötigt
+ REGION Korrekturvorgänge loggen
+
+ #fbEventLogCorrection1(xInTrigger := #arEventCorrectionInfo[0].xTrigger,
+ stInEventCorrectionInfo := #arEventCorrectionInfo[0]);
+
+ #fbEventLogCorrection2(xInTrigger := #arEventCorrectionInfo[1].xTrigger,
+ stInEventCorrectionInfo := #arEventCorrectionInfo[1]);
+
+ END_REGION
+
+ #fbEventLogCarrierUnknown(xInTrigger := #xUnknownCarrier,
+ stInEventScanInfo := #stEventUnknown);
+
+ #fbEventLogCarrierNew(xInTrigger := #xNewCarrier,
+ stInEventScanInfo := #stEventNew);
+
+ #fbEventLogGoodRead(xInTrigger := #xGoodRead,
+ stInEventScanInfo := #stEventGoodRead);
+
+ REGION Letzten Schritt wegschreiben
+ #nOutStateLast := #fbStateManager.nStateLast;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_CarrAccumulate1Sep.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_CarrAccumulate1Sep.liblink
new file mode 100644
index 0000000..fed3cf7
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_CarrAccumulate1Sep.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7d35be77-2a72-4530-b111-2a609340cc24
+VersionGuid: 2ad8b4f4-249f-4013-ac79-66401f0d4420
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Sep.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Sep.liblink
new file mode 100644
index 0000000..16aecb3
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Sep.liblink
@@ -0,0 +1,2 @@
+TypeGuid: d73846b1-6cd6-414c-ac23-6600e2c98ae1
+VersionGuid: 456c4cee-f3c8-4642-aa97-cf33a9152512
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Switch.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Switch.liblink
new file mode 100644
index 0000000..313afcb
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Switch.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 2b644f30-a3a6-4abb-8b59-ef341fedf9f8
+VersionGuid: 91175451-8c0e-4789-b302-fd2c134e9d15
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Vario.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Vario.liblink
new file mode 100644
index 0000000..aab496b
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_ILS_STRO_Vario.liblink
@@ -0,0 +1,2 @@
+TypeGuid: fdb28b91-85cc-4257-9a7f-4ee21454e413
+VersionGuid: 2497d8a1-ceea-4dac-b905-551eed5082d8
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_SupervisionRasterSensor.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_SupervisionRasterSensor.liblink
new file mode 100644
index 0000000..33ab225
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/FB_SupervisionRasterSensor.liblink
@@ -0,0 +1,2 @@
+TypeGuid: b2b7bae2-df01-45c1-b728-4f21f6dccf2b
+VersionGuid: 3b4a840b-d014-4f13-8b4b-a11a10747b6c
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/Special/FB_ILS_STRO_Vario_WorkStation.scl b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/Special/FB_ILS_STRO_Vario_WorkStation.scl
new file mode 100644
index 0000000..ee4e6c8
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FB/STRO/Special/FB_ILS_STRO_Vario_WorkStation.scl
@@ -0,0 +1,614 @@
+FUNCTION_BLOCK "FB_ILS_STRO_Vario_WorkStation"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ stInSettings : "SettingsVario"; // Einstellungen Vario
+ xInReleaseEdge : Bool; // Flanke Carrier rausgelassen
+ stInSenConvFingerInPos : "UDT_Sensor"; // Mitnehmerfinger in Position (FingerInPos)
+ stInSenJam : "UDT_Sensor"; // Stausensor nach Vario (Jam)
+ stInSenLastPos : "UDT_Sensor"; // Letzte Position erreicht (Full)
+ stInSenCarrInPos : "UDT_Sensor"; // Carrier in Position (CarrInPos)
+ xInRelease : Bool := false; // Freigabe zum Entleeren
+ xInRequest : Bool; // Anfrage an Vario
+ xInMotorProtection : Bool := false; // Motorschutz
+ xInErrorQuit : Bool; // Fehler quittieren Überwachung Finger
+ xInAutomatic : Bool;
+ stInStationSensor : "UDT_Sensor";
+ xInReleaseStation : Bool;
+ END_VAR
+
+ VAR_OUTPUT
+ xOutMotor : Bool := false; // Antrieb raumgängiger Förderer
+ xOutConveyorReady : Bool := false; // HFS Schnittstelle: Förderer kann neuen BT aufnehmen
+ xOutConveyorReleaseReq : Bool := false; // Anforderung: Förderer entleeren
+ END_VAR
+
+ VAR_IN_OUT
+ arInOutJamFinger : Array[*] of "stCarrier"; // Daten Staubereich Finger
+ stInOutHMI : "UDT_Vario";
+ stInOutControlUnitCabinet : "UDT_MainState";
+ END_VAR
+
+ VAR
+ fbStateManager { ExternalWritable := 'False'; S7_SetPoint := 'False'} : "FB_StateManager"; // Schrittkette Manager
+ fbFingerControl : "FB_SupervisionRasterSensor";
+ sStateText { S7_SetPoint := 'True'} : String := ''; // Schritt Text (zum Beobachten)
+ END_VAR
+ VAR RETAIN
+ nState { S7_SetPoint := 'True'} : Int := 0; // Schritt
+ nStateLast : Int := 0; // vorheriger Schritt (für State Manager)
+ xRunMotor : Bool := false; // Motor Start
+ xConveyorReady : Bool := false; // Förderer ist bereit
+ tOnAllBtOut {InstructionName := 'TON_TIME'; LibVersion := '1.0'; S7_SetPoint := 'False'} : TON_TIME; // Timer: Keine Bt mehr auf Vario
+ counterCarrier {InstructionName := 'CTU_INT'; LibVersion := '1.0'} : CTU_INT; // Klinkenzählerfunktion
+ END_VAR
+ VAR
+ nCounterCatch : Int := 0; // Zähler Klinke
+ xErrorBtNotReaching : Bool := false;
+ tOn_ErrorConv {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Zeitverzögerte Fehlermeldung wenn Förderer zu lange zum Entleeren braucht oder zu lange voll
+ tOn_WaitForStop {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
+ fbMonitoringFinger : "FB_Monitoring";
+ xClearDone : Bool; // Prüffahrt um Finger leer zu fahren abgeschlossen
+ "////////" : Bool;
+ xTestMode : Bool;
+ xSationStop : Bool;
+ xReleaseReq : Bool;
+ nCarrierCount : Int;
+ xReleaseStation : Bool;
+ xStartScanBarcode : Bool;
+ xReadyForScan : Bool;
+ xReadingDone : Bool;
+ xHandShakeScan : Bool;
+ xBeladenError : Bool;
+ xResetBeladen : Bool;
+ xResetLed : Bool;
+ FB_Blinker { S7_SetPoint := 'False'} : "FB_Blinker";
+ END_VAR
+
+ VAR_TEMP
+ tmpActUnivTon : Bool; // Siehe State Manager
+ nArrayMaxFinger : DInt;
+ END_VAR
+
+ VAR CONSTANT
+ c0000_StepOff : Int := 0; // Aus
+ c0100_StepUndefined : Int := 100; // Undefiniert
+ c0200_StepReceive : Int := 200; // Förderer wartet auf Arbeit / Bereit aufzunehmen
+ c1200_StepWaitTime : Int := 1200; // Förderer wartet vor Fahrt
+ c2000_StepJog : Int := 2000; // Förderer eine Position weiter fahren (Jog Fw)
+ c2200_StepNormalStop : Int := 2200;
+ c2250_StepQuickStop : Int := 2250;
+ c2500_StepCheckVario : Int := 2500; // Prüfen ob wirklich leer
+ c3000_StepEmptying : Int := 3000; // Förderer entleeren
+ c5000_StepEnding : Int := 5000; // Förderer Ablauf beenden
+ c8000_StepScan : Int := 8000;
+ c8001_WaitingForRelease : Int := 8001;
+ END_VAR
+
+
+BEGIN
+ REGION Arraygrößen
+ #nArrayMaxFinger := UPPER_BOUND(ARR := #arInOutJamFinger, DIM := 1);
+ END_REGION
+
+ REGION State Machine
+ // Off
+ // Idle (keine Daten und Prüffahrt abgeschlossen)
+ // Anforderung MTRO / Separator
+ // -> Entleeren
+ // Entleeren (Fahre bis Stau oder keine Daten)
+ // 1. Anforderung MTRO / Separator
+ // -> Entleeren Pausieren
+ // 2. Keine Daten mehr
+ // -> Idle
+ // Entleeren Pausieren
+ //
+
+
+ CASE #nState OF
+ #c0000_StepOff:
+ REGION 0000: Off
+
+ // Aktueller Zustand
+ #sStateText := 'OFF';
+
+ // Statics
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+
+ END_REGION
+
+ #c0100_StepUndefined:
+ REGION 0100: Undefined
+
+ // Aktueller Zustand
+ #sStateText := 'UNDEFINED';
+
+ // Statics
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+
+ #nState := #c0200_StepReceive;
+ END_REGION
+
+ #c0200_StepReceive:
+ REGION 0200: Receive
+
+ // Aktueller Zustand
+ #sStateText := 'RECEIVE';
+
+ // Statics
+ #xReleaseReq := FALSE;
+ #xRunMotor := FALSE;
+
+
+
+
+ #xConveyorReady := #xInMotorProtection;
+
+ // Transition
+ //
+ IF #xTestMode OR #stInOutHMI.stControl.xTestMode THEN
+ #xConveyorReady := FALSE;
+ #nState := #c2000_StepJog;
+ ELSE
+
+ IF (#xConveyorReady AND #counterCarrier.QU) OR ((* #arInOutJamFinger[1].bStatus.%X0 AND *)NOT #xInRequest AND NOT #xClearDone AND #fbStateManager.tOutTimeInStep > T#5000ms) THEN
+ #nState := #c1200_StepWaitTime;
+
+ // ELSIF (#arInOutJamFinger[1].stCarrData.xOnline AND NOT #xClearDone AND NOT #xInRequest AND #fbStateManager.tOutTimeInStep > T#5000ms) AND
+ // (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms) THEN
+ // #nState := #c2500_StepCheckVario;
+ // ELSIF #arInOutJamFinger[1].stCarrData.xOnline AND NOT #xInRequest AND #fbStateManager.tOutTimeInStep > T#5000ms THEN
+ // #nState := #c3000_StepEmptying;
+ END_IF;
+ END_IF;
+
+ END_REGION
+
+ #c1200_StepWaitTime:
+ REGION 1200: Wait
+ // Aktueller Zustand
+ #sStateText := 'WAIT FOR TIMER';
+ #xSationStop := FALSE;// PRÜFEN
+ // #xReleaseReq := FALSE;
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+ #xReleaseStation := FALSE;
+
+
+ IF #fbStateManager.tOutTimeInStep > #stInSettings.tWaitForJog (* AND NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms *)THEN
+ IF #xInRequest THEN
+ #xClearDone := FALSE;
+ #nState := #c3000_StepEmptying(* #c2000_StepJog *);
+
+ ELSIF NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#2s THEN
+ #nState := #c3000_StepEmptying;
+ (* ELSE
+ #nState := #c3000_StepEmptying; *)
+ END_IF;
+ END_IF;
+ END_REGION
+
+
+ #c2000_StepJog:
+ REGION 2000: Jog
+
+
+
+ // Aktueller Zustand
+ #sStateText := 'JOG';
+
+ // Statics
+ #xRunMotor := TRUE;
+ #xConveyorReady := FALSE;
+
+ // IF #stInStationSensor.xDirectSensor AND #stInStationSensor.tDirectChangeLast< T#3000MS THEN
+
+ // #xSationStop := TRUE;
+ // #xReleaseReq := TRUE;
+ // END_IF;
+
+ IF #xTestMode OR #stInOutHMI.stControl.xTestMode THEN
+ IF #stInSenConvFingerInPos.xDirectEdgePos THEN
+ #nState := #c2200_StepNormalStop;
+ END_IF;
+ // ELSE
+ // IF (#fbStateManager.tOutTimeInStep > T#1000ms OR #fbFingerControl.xOutErrorRasterSensor) OR (#stInSenJam.xDirectSensor AND #stInSenLastPos.xDirectSensor)
+ // OR #xSationStop
+
+ // THEN
+ // #nState := #c2250_StepQuickStop;
+ // ELSIF (#stInSenJam.xDirectEdgePos AND NOT #stInSettings.xJamSenDelayActive)
+ // OR (#stInSettings.xJamSenDelayActive AND #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > #stInSettings.tJamSenDelay)
+ // THEN
+ // #nState := #c2200_StepNormalStop;
+ // ELSIF #stInSenConvFingerInPos.xDirectEdgePos THEN //////EMBI TEST
+ // #nState := #c0200_StepReceive;
+ // END_IF;
+ END_IF;
+
+ END_REGION
+
+ #c2200_StepNormalStop: //normal anhalten
+ REGION 2200: Normal Stop
+
+ // Aktueller Zustand
+ #sStateText := 'NORMAL STOP';
+
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+
+ #xConveyorReady := FALSE;
+ IF #stInStationSensor.xDirectSensor AND #stInStationSensor.tDirectChangeLast < T#3000MS THEN
+
+ // #xSationStop := TRUE;
+ #xReleaseReq := TRUE;
+ END_IF;
+
+
+ IF #xTestMode OR #stInOutHMI.stControl.xTestMode THEN
+
+ IF #tOn_WaitForStop.Q THEN
+ #nState := #c0200_StepReceive;
+ END_IF;
+
+ ELSE
+ IF NOT #xReleaseReq THEN
+ IF (NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#2s AND #stInSenJam.xDbncdSensor) OR
+ (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms) THEN
+ #nState := #c5000_StepEnding;
+ END_IF;
+ ELSE
+ IF
+ ((NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#2s AND #stInSenJam.xDbncdSensor) OR
+ (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms)) AND #xInReleaseStation THEN
+ #nState := #c5000_StepEnding;
+ END_IF;
+ END_IF;
+
+ END_IF;
+
+
+ END_REGION
+
+ #c2250_StepQuickStop:
+ REGION 2250: Quick Stop
+
+ // Aktueller Zustand
+ #sStateText := 'QUICK STOP';
+
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+
+
+ IF NOT #xSationStop THEN
+
+ IF ((NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms) OR
+ (NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#3000ms)) AND
+ NOT #fbFingerControl.xOutErrorRasterSensor
+ THEN
+ #nState := #c1200_StepWaitTime;
+
+
+ END_IF;
+ ELSE
+ #nState := #c8000_StepScan;
+ #xReleaseReq := TRUE;
+
+ (* IF (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms)(* OR
+ (NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#3000ms) *) AND
+ NOT #fbFingerControl.xOutErrorRasterSensor AND #xReleaseStation
+ THEN
+ #nState := #c1200_StepWaitTime;
+
+
+ END_IF; *)
+
+
+ END_IF;
+ END_REGION
+
+ #c3000_StepEmptying:
+ REGION 3000: Emptying
+
+ IF #stInStationSensor.xDirectSensor AND #stInStationSensor.tDirectChangeLast < T#500MS THEN
+
+ #xSationStop := TRUE;
+ // #xReleaseReq := TRUE;
+ END_IF;
+
+ // Aktueller Zustand
+ #sStateText := 'EMPTYING CONVEYOR';
+
+ // Statics
+
+ #xRunMotor := TRUE;
+ #xConveyorReady := FALSE;
+
+
+ ///////////////////// ////TEST ///
+ //
+
+
+ IF (#stInSenJam.xDirectSensor AND #stInSenLastPos.xDirectSensor) OR #xSationStop THEN
+ #nState := #c2250_StepQuickStop;
+ ELSIF #xBeladenError THEN
+ #nState := 9999;
+
+ ELSIF (#stInSenJam.xDirectEdgePos AND NOT #stInSettings.xJamSenDelayActive)
+ OR (#stInSettings.xJamSenDelayActive AND #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > #stInSettings.tJamSenDelay)
+ THEN
+ #nState := #c2200_StepNormalStop;
+ ELSIF #xInRequest AND #xReleaseReq THEN
+ #xClearDone := FALSE;
+ #nState := #c5000_StepEnding;
+ ELSIF #tOnAllBtOut.Q THEN
+ #xClearDone := TRUE;
+ #nState := #c5000_StepEnding;
+ // ELSIF #tOnAllBtOut.Q THEN // Freigabe zum Entleeren ist wieder/noch da und Carousel-Motor läuft
+ // // Wenn nach einer gewissen Zeit nichts mehr kommt --> Alle Bt draußen --> Kette leer
+ // #nState := #c5000_StepEnding; // Weiter
+ END_IF;
+ ///////////////////
+
+ END_REGION
+
+ #c5000_StepEnding:
+ REGION 5000: Ending Step
+
+ (*Dieser Schritt wird nur nach dem Entleeren angesprungen
+ damit sich die Kette zum Schluss noch richtig positioniert*)
+
+ //Aktueller Zustand
+
+
+ #sStateText := 'STOPPING CONVEYOR';
+
+ //Statics
+ #xRunMotor := TRUE;
+ #xConveyorReady := FALSE;
+ #xReleaseReq := FALSE;
+
+ // Transition
+ IF (#stInSenJam.xDirectSensor AND #stInSenLastPos.xDirectSensor) OR (#fbStateManager.tOutTimeInStep > T#1000ms OR #fbFingerControl.xOutErrorRasterSensor) THEN
+ #xClearDone := FALSE;
+ #nState := #c2250_StepQuickStop;
+ ELSIF #stInSenConvFingerInPos.xDirectEdgePos (* AND #stInStationSensor.xDirectSensor *) (*or #fbStateManager.tOutTimeInStep > T#800ms OR *) (* #stInSenLastPos.xDirectEdgePos *)(* #stInSenConvFingerInPos.xDirectSensor *)THEN
+ #nState := #c0200_StepReceive;
+ ELSIF (#stInSenJam.xDirectEdgePos AND NOT #stInSettings.xJamSenDelayActive)
+ OR (#stInSettings.xJamSenDelayActive AND #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > #stInSettings.tJamSenDelay)
+ THEN
+ #nState := #c2200_StepNormalStop;
+ END_IF;
+
+ END_REGION
+ #c8000_StepScan: //StartScan
+ REGION 8000: Start Scan
+
+ #sStateText := ' Start Scan';
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+
+
+
+ IF #xReadyForScan THEN
+
+ #xStartScanBarcode := TRUE;
+ #xHandShakeScan := FALSE;
+
+ END_IF;
+
+
+ IF #xReadingDone THEN
+
+ #xStartScanBarcode := FALSE;
+
+
+
+ #nState := #c8001_WaitingForRelease;
+ #xHandShakeScan := TRUE;
+
+
+ END_IF;
+
+ END_REGION
+
+
+ #c8001_WaitingForRelease:
+ REGION 8001: WaitingForRelease
+
+ #sStateText := 'Waiting For Release ';
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+
+ IF #xInReleaseStation THEN
+ #xReleaseStation := TRUE;
+ END_IF;
+
+
+
+
+
+ IF (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms)(* OR
+ (NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#3000ms) *)AND
+ NOT #fbFingerControl.xOutErrorRasterSensor AND #xReleaseStation
+ THEN
+
+ #nState := #c1200_StepWaitTime;
+ END_IF;
+
+ END_REGION
+
+
+
+
+
+
+
+ 9999: //Beladen Error
+ REGION 9999: Beladen Error
+
+ #sStateText := 'beladen Error ';
+ #xRunMotor := FALSE;
+ #xConveyorReady := FALSE;
+ #xResetLed := TRUE;
+
+ IF NOT #xBeladenError AND #xResetBeladen THEN
+ #xResetLed := FALSE;
+ #nState := #c3000_StepEmptying;
+ ELSIF
+ #xBeladenError AND #xResetBeladen THEN
+ #xResetLed := TRUE;
+ ELSIF
+ NOT #xBeladenError AND NOT #xResetBeladen THEN
+
+ #xResetLed := #FB_Blinker.xOutput;
+
+ END_IF;
+
+
+
+
+
+ END_REGION
+
+ REGION Blinker
+ #FB_Blinker(tInPeriodicTime := T#500ms,
+ xInActivate := 1);
+ END_REGION
+
+
+
+
+ END_CASE;
+ END_REGION
+
+ REGION Timer
+
+ //??????????????????????????
+ #tOn_ErrorConv(IN := (#nState = #c0200_StepReceive OR #nState = #c3000_StepEmptying) AND NOT #stInSettings.xContinousEmptying,
+ PT := T#60s);
+
+ // Kette wird entleert... wenn nach PT sekunden (z.b. 5 sec) nichts mehr am FullSensor vorbeikommt, wird das Entleeren beendet (die Kette ist also leer)
+ // Jedesmal wenn ein Bt den FullSensor passiert oder das Entleeren pausiert wird, wird der Timer neu gestartet
+
+ #tOnAllBtOut(IN := #nState = #c3000_StepEmptying(* AND #xInRelease *),
+ PT := #stInSettings.tConvEmpty);
+
+ #tOn_WaitForStop(IN := #nState = #c2200_StepNormalStop,
+ PT := #stInSettings.tWaitForStop);
+
+ END_REGION
+
+ REGION Carrier zählen
+
+
+ #counterCarrier(CU := #xInReleaseEdge,
+ R := #nState > #c0200_StepReceive,
+ PV := #stInSettings.nCountCarrier,
+ CV => #nCounterCatch);
+
+ END_REGION
+
+ REGION Überwachung Finger
+
+ #fbFingerControl.stInSettings.xInEnableSupervision := TRUE;
+ #fbFingerControl.stInSettings.tInDelayMotorRun := #stInSettings.tRasterDelayMotorRun;
+ #fbFingerControl.stInSettings.tInRasterHigh := #stInSettings.tRasterHigh;
+ #fbFingerControl.stInSettings.tInRasterLow := #stInSettings.tRasterLow;
+ #fbFingerControl(stInSenRaster := #stInSenConvFingerInPos,
+ xInErrorQuit := #xInErrorQuit,
+ xInMotorRun := #xRunMotor);
+
+ END_REGION
+
+ REGION StateManager
+
+ #fbStateManager.stInSettings.nStartState := #c0200_StepReceive;
+ #fbStateManager.stInSettings.xActUnivTOn := TRUE;
+ #fbStateManager.stInSettings.xRestartAtStartState := FALSE;
+ #fbStateManager(xInFunctionEnabled := ((#xInAutomatic AND #stInOutControlUnitCabinet.xRunning) OR #stInOutHMI.stConveyor.xSemiAuto) AND NOT #stInOutHMI.stConveyor.xDisableConveyor AND NOT #fbFingerControl.xOutErrorRasterSensor,
+ xInRunUnivTOn := #tmpActUnivTon,
+ nOutStateLast => #nStateLast,
+ nInOutState := #nState);
+ END_REGION
+
+ REGION Ausgänge
+
+ // Das ist der Motor vom Förderer
+ #xOutMotor := #xRunMotor OR #stInOutHMI.stConveyor.xManual; // Förderer-Motor angefordert und kein Bereichshalt
+ #xOutConveyorReady := #xConveyorReady; //Förderer bereit (aus SK) und kein Bereichshalt Förderer
+
+ //????????????????????????????
+ #xOutConveyorReleaseReq := #nState = #c3000_StepEmptying OR #nState = #c1200_StepWaitTime;
+
+ END_REGION
+
+ REGION Visu
+ #stInOutHMI.stConveyor.nType := 7; // Vario
+
+ #stInOutHMI.stConveyor.nState := #nState;
+ #stInOutHMI.stConveyor.sStateText := #sStateText;
+
+ #stInOutHMI.FingerSensor := #stInSenConvFingerInPos;
+ #stInOutHMI.JamSensor := #stInSenJam;
+ #stInOutHMI.LastPosSensor := #stInSenLastPos;
+
+ REGION Status
+ IF #xInMotorProtection THEN
+ IF #fbStateManager.xInFunctionEnabled THEN
+ CASE #nState OF
+ #c0000_StepOff:
+ #stInOutHMI.stConveyor.bStatus := 0; // NOT_AVAILABLE
+ #c0200_StepReceive, #c1200_StepWaitTime, #c2000_StepJog, #c2250_StepQuickStop, #c2200_StepNormalStop, #c3000_StepEmptying, #c5000_StepEnding:
+ #stInOutHMI.stConveyor.bStatus := 1; // AVAILABLE
+ ELSE //Fallback
+ #stInOutHMI.stConveyor.bStatus := 0; // NOT_AVAILABLE
+ END_CASE;
+ ELSE
+ #stInOutHMI.stConveyor.bStatus := 0; // NOT_AVAILABLE
+ END_IF;
+ ELSE
+ #stInOutHMI.stConveyor.bStatus := 2; // ERROR
+ END_IF;
+ END_REGION
+ REGION Modes
+ // Int16 Bit-codiert
+ #stInOutHMI.stConveyor.nMode.%X0 := (#nState = #c0000_StepOff) OR (#nState = #c0100_StepUndefined) OR (#nState = #c0200_StepReceive) OR (#nState = #c1200_StepWaitTime) OR (#nState = #c2200_StepNormalStop) OR (#nState = #c2250_StepQuickStop); // The device is turned off
+ #stInOutHMI.stConveyor.nMode.%X1 := (#nState = #c2000_StepJog) OR (#nState = #c3000_StepEmptying) OR (#nState = #c5000_StepEnding);
+ #stInOutHMI.stConveyor.nMode.%X2 := #stInOutHMI.stConveyor.xDisableConveyor OR #stInOutHMI.stConveyor.xManual OR #stInOutHMI.stConveyor.xSemiAuto OR #xTestMode OR #stInOutHMI.stControl.xTestMode (* OR #xViSuManualMode OR #xViSuSemiAutoMode *); // The device is being manually operated
+ #stInOutHMI.stConveyor.nMode.%X3 := FALSE;//(#nState = #STOPPED); //The device only is on when the device is needed (like standby)
+ #stInOutHMI.stConveyor.nMode.%X10 := FALSE; // Overflow Error is set for this device
+ END_REGION
+ #stInOutHMI.stConveyor.xIsInAutomatic := #stInOutControlUnitCabinet.xRunning;
+ #stInOutHMI.stConveyor.xEnergySaveReq := FALSE;
+ #stInOutHMI.stConveyor.xPowerContactor := #xOutMotor;
+ #stInOutHMI.stConveyor.xPluggedChainBreak := FALSE;
+ #stInOutHMI.stConveyor.xStatusChainBreak := TRUE;
+ #stInOutHMI.stConveyor.xStatusMotorProtect := #xInMotorProtection;
+ #stInOutHMI.stConveyor.xConveyorFull1 := FALSE;
+ #stInOutHMI.stConveyor.xConveyorFull2 := FALSE;
+ #stInOutHMI.stConveyor.xReady2Receive := TRUE;
+ #stInOutHMI.stConveyor.xNextConveyorReady := TRUE;
+
+ END_REGION
+
+ REGION Monitoring
+
+ #fbMonitoringFinger.stSettings.nErrorType := 1;
+ #fbMonitoringFinger.stSettings.xErrLedIfMachineIsOff := TRUE;
+ #fbMonitoringFinger.stSettings.xSelfQuit := TRUE;
+ #fbMonitoringFinger.stSettings.tDelay := T#1s;
+ #fbMonitoringFinger(sInFctnName := #stInOutHMI.stConveyor.sConveyorName,
+ sInPrefix := 'Fingerueberwachung',
+ sInSuffix := #stInOutHMI.FingerSensor.sName,
+ wInTextListId_Function := 300,
+ wInTextListId_Message := 301,
+ xInQuitError := #stInOutControlUnitCabinet.xQuitError OR #xInErrorQuit,
+ xInSignal := NOT #fbFingerControl.xOutErrorRasterSensor,
+ sInAlarmMessage := 'Fingerfehler',
+ InOutMachineState := #stInOutControlUnitCabinet);
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Ean8_CheckDigit.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Ean8_CheckDigit.liblink
new file mode 100644
index 0000000..6ec7a2b
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Ean8_CheckDigit.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 72f65cd0-2f82-4e9a-944e-763573262fcb
+VersionGuid: 86087764-f9fa-4e00-99b4-fd1f0d046c81
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Route.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Route.liblink
new file mode 100644
index 0000000..3295141
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Route.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 487f8a43-4b39-46f6-a1db-76a1b3e0f176
+VersionGuid: a5ef1d68-80ec-445d-a745-78efb8a2a107
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_TSHR_AddAtEnd.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_TSHR_AddAtEnd.liblink
new file mode 100644
index 0000000..58b9557
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_TSHR_AddAtEnd.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 7fd3f712-0c70-464a-a178-3c0e9f56e7fd
+VersionGuid: 42d9ac8f-436d-47fd-ad7b-f96d7f788df8
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_TSHR_Shift.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_TSHR_Shift.liblink
new file mode 100644
index 0000000..bb97f88
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_TSHR_Shift.liblink
@@ -0,0 +1,2 @@
+TypeGuid: d80e8fca-e961-4f74-921c-a6b0d72f1eac
+VersionGuid: f6d0468d-7b77-4edd-9872-9c45f88f2433
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Uint2TroString_1.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Uint2TroString_1.liblink
new file mode 100644
index 0000000..f673b3e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_Uint2TroString_1.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 080fec55-3e2f-4dd7-a4ef-294c5113ff9e
+VersionGuid: 87ef5917-e524-4be6-9c25-711f27819aa2
diff --git a/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_usint2String_1.liblink b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_usint2String_1.liblink
new file mode 100644
index 0000000..06c015c
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/2_ILSLib/FC/FC_usint2String_1.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 170b53d4-41f2-4a63-95d5-f1d211def922
+VersionGuid: f6da1f27-73cc-44c0-b509-a32a5cc418eb
diff --git a/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Int2String.scl b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Int2String.scl
new file mode 100644
index 0000000..9c106e8
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Int2String.scl
@@ -0,0 +1,25 @@
+FUNCTION "FC_Int2String" : String
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInNumber : Int;
+ END_VAR
+
+ VAR_TEMP
+ sTmp : String;
+ END_VAR
+
+
+BEGIN
+ // Funktion wandelt Int zu String. Im Gegensatz zu "Int_To_String" wird das "+" entfernt. Bei negativen Zahlen bleibt das "-" erhalten.
+ // Autor: Christian Forkl
+ // 28.07.2021
+
+ #sTmp := INT_TO_STRING(#nInNumber);
+ IF #nInNumber >= 0 THEN
+ #FC_Int2String := RIGHT(IN := #sTmp, L := (LEN(#sTmp) - 1));
+ ELSE
+ #FC_Int2String := #sTmp;
+ END_IF;
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Jam.scl b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Jam.scl
new file mode 100644
index 0000000..5c43e82
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Jam.scl
@@ -0,0 +1,116 @@
+FUNCTION "FC_Jam" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_OUTPUT
+ stOutCarrierStatsStandard : "CarrierStatisticsStandard";
+ stOutCarrierStatsAdv : "CarrierStatisticsAMR";
+ END_VAR
+
+ VAR_IN_OUT
+ arInOutJamCarrier : Array[*] of "stCarrier";
+ stInOutData : "stJamData";
+ END_VAR
+
+ VAR_TEMP
+ nIdx : Int;
+ nArrayMax : Int;
+ END_VAR
+
+ VAR CONSTANT
+ cForecast : USInt := 110;
+ cRetrieveSeqSeat : USInt := 1;
+ cRetrieveSeqRest : USInt := 2;
+ cRetrieveExpress : USInt := 3;
+ cDummy : USInt := 1;
+ END_VAR
+
+
+BEGIN
+ //Prüft Einstellwert
+ IF (#stInOutData.Config.nCapacitySet > #stInOutData.Config.nCapacityMax) OR (#stInOutData.Config.nCapacitySet <= 0) THEN
+ #stInOutData.Config.nCapacitySet := #stInOutData.Config.nCapacityMax;
+ END_IF;
+
+ //Init
+ #stOutCarrierStatsStandard.nEmptyCarrier := 0;
+ #stOutCarrierStatsStandard.nLoadedCarrier := 0;
+ #stOutCarrierStatsStandard.nDummyCarrier := 0;
+
+ #stOutCarrierStatsAdv.nDestMPS1 := 0;
+ #stOutCarrierStatsAdv.nDestMPS2 := 0;
+ #stOutCarrierStatsAdv.nDestMPS3 := 0;
+ #stOutCarrierStatsAdv.nDestRecirce := 0;
+
+ //Ermittelt den Status/Füllstand des Staubereichs
+ #nArrayMax := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJamCarrier, DIM := 1));
+
+ IF NOT #arInOutJamCarrier[1].bStatus.%X0 THEN //Wenn 1. Teil leer, dann muss Schleife nicht ausgeführt werden
+ #stInOutData.Status.nCount := 0;
+ #stInOutData.Status.bByte.%X0 := TRUE;
+
+ //Statistik - Jam leer
+ #stOutCarrierStatsStandard.nEmptyCarrier := 0;
+ #stOutCarrierStatsStandard.nLoadedCarrier := 0;
+ #stOutCarrierStatsStandard.nDummyCarrier := 0;
+
+ #stOutCarrierStatsAdv.nDestMPS1 := 0;
+ #stOutCarrierStatsAdv.nDestMPS2 := 0;
+ #stOutCarrierStatsAdv.nDestMPS3 := 0;
+ #stOutCarrierStatsAdv.nDestRecirce := 0;
+
+ //****Für Statistics muss dies auskommentiert werden
+ // ELSIF #arInOutJamCarrier[#nArrayMax].xOnline THEN //Wenn letztes Teil belegt, dann muss Schleife nicht ausgeführt werden
+ // #stInOutData.Status.nCount := #nArrayMax;
+ // #stInOutData.Status.xEmpty := FALSE;
+ //*****
+
+ ELSE
+ FOR #nIdx := 1 TO #nArrayMax DO
+ //Statistics - nur wenn etwas vorhanden, ansonsten nicht machen
+ IF #arInOutJamCarrier[#nIdx].nBarcode <> 0 THEN
+ //Statistics Standard
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND NOT #arInOutJamCarrier[#nIdx].bStatus.%X1 AND #arInOutJamCarrier[#nIdx].nBarcode <> #cDummy THEN
+ #stOutCarrierStatsStandard.nEmptyCarrier += 1;
+ END_IF;
+
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].bStatus.%X1 AND #arInOutJamCarrier[#nIdx].nBarcode <> #cDummy THEN
+ #stOutCarrierStatsStandard.nLoadedCarrier += 1;
+ END_IF;
+
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nBarcode = #cDummy THEN
+ #stOutCarrierStatsStandard.nDummyCarrier += 1;
+ END_IF;
+ // Statistics Advanced (Bereichsbezogen)
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestMps1" THEN
+ #stOutCarrierStatsAdv.nDestMPS1 += 1;
+ END_IF;
+
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestMps2" THEN
+ #stOutCarrierStatsAdv.nDestMPS2 += 1;
+ END_IF;
+
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestMps3" THEN
+ #stOutCarrierStatsAdv.nDestMPS3 += 1;
+ END_IF;
+
+ IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestRecirc" THEN
+ #stOutCarrierStatsAdv.nDestRecirce += 1;
+ END_IF;
+ END_IF;
+
+ IF #arInOutJamCarrier[#nIdx].nBarcode = 0 THEN //Zählt nicht die Teile sondern merkt sich die Positionen wo ein Teil vorhanden ist (minus 1)
+ #stInOutData.Status.nCount := INT_TO_UINT(#nIdx - 1);
+ #stInOutData.Status.bByte.%X0 := FALSE;
+ EXIT;
+ //****Für Statistics würde dies benötigt werden
+ ELSIF #nIdx = #nArrayMax THEN
+ #stInOutData.Status.nCount := INT_TO_UINT(#nArrayMax);
+ #stInOutData.Status.bByte.%X0 := FALSE;
+ EXIT;
+ //******
+ END_IF;
+ END_FOR;
+ END_IF;
+
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_StorageLines.scl b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_StorageLines.scl
new file mode 100644
index 0000000..bd1c4e4
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_StorageLines.scl
@@ -0,0 +1,137 @@
+FUNCTION "FC_StorageLines" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInDest : Int; // allgemeine Destination für diese Section
+ END_VAR
+
+ VAR_OUTPUT
+ nOutStorageLevel : Int; // Gesamt-Füllstand
+ stOutCarrStats : "CarrierStatisticsStore";
+ END_VAR
+
+ VAR_IN_OUT
+ arInOutStorage : Array[*] of "stStorageLine";
+ END_VAR
+
+ VAR_TEMP
+ nIdx1 : USInt;
+ nIdx2 : USInt;
+ nArrayMax : USInt;
+ nDestMin : Int; // Ziele kleiner gehören raus
+ nDestMax : Int; // Ziele größer gehören raus
+ END_VAR
+
+ VAR CONSTANT
+ cDummy : USInt := 1;
+ END_VAR
+
+
+BEGIN
+ //Durchsucht die Lagerlinien um den Status/Füllstand zu ermitteln und gibt dabei Statistikwerte aus
+
+ #stOutCarrStats.nEmptyCarrier := 0;
+ #stOutCarrStats.nDummy := 0;
+ #stOutCarrStats.stRdyToLeave.nCount := 0;
+
+ REGION Arraygrenze ermitteln
+ #nArrayMax := DINT_TO_USINT(UPPER_BOUND(ARR := #arInOutStorage, DIM := 1)); // get array size
+ #nDestMin := #nInDest;
+ #nDestMax := #nInDest + #nArrayMax;
+ END_REGION
+
+ REGION Lager durchsuchen
+ FOR #nIdx1 := 1 TO #nArrayMax DO
+ //Prüft Einstellwert
+ IF (#arInOutStorage[#nIdx1].stData.Config.nCapacitySet > #arInOutStorage[#nIdx1].stData.Config.nCapacityMax) OR (#arInOutStorage[#nIdx1].stData.Config.nCapacitySet <= 0) THEN
+ #arInOutStorage[#nIdx1].stData.Config.nCapacitySet := #arInOutStorage[#nIdx1].stData.Config.nCapacityMax;
+ END_IF;
+ FOR #nIdx2 := 1 TO "cNoPositions" DO
+ IF #nIdx2 = "cNoPositions" THEN
+ REGION Linienende erreicht
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> 0 THEN //Zählt nicht die Teile sondern merkt sich die Positionen wo ein Teil vorhanden ist
+ #arInOutStorage[#nIdx1].stData.Status.nCount := #nIdx2;
+ #arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := FALSE;
+ REGION Werte für Statistik ermitteln
+ IF NOT #arInOutStorage[#nIdx1].arCarrier[#nIdx2].bStatus.%X1 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> #cDummy THEN
+ #stOutCarrStats.nEmptyCarrier += 1;
+ END_IF;
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = #cDummy THEN
+ #stOutCarrStats.nDummy += 1;
+ END_IF;
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination < #nDestMin OR #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination > #nDestMax THEN
+ #stOutCarrStats.stRdyToLeave.nCount += 1;
+ #stOutCarrStats.stRdyToLeave.nLine := #nIdx1;
+ #stOutCarrStats.stRdyToLeave.nPos := #nIdx2;
+ END_IF;
+ END_REGION
+ EXIT;
+ ELSIF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = 0 THEN //Verlässt Schleife nach letztem gefundenen Teil um nicht die Schleife für leere Plätze auszuführen
+ REGION Leer
+ #arInOutStorage[#nIdx1].stData.Status.nCount := 0;
+ #arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := TRUE;
+ EXIT;
+ END_REGION
+
+ END_IF;
+ END_REGION
+ ELSIF #nIdx2 < "cNoPositions" THEN
+ IF (#arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> 0 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2 + 1].nBarcode = 0) THEN //Zählt nicht die Teile sondern merkt sich die Positionen wo ein Teil vorhanden ist
+ REGION Letzter Carrier erreicht
+ #arInOutStorage[#nIdx1].stData.Status.nCount := #nIdx2;
+ #arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := FALSE;
+ REGION Werte für Statistik ermitteln
+ IF NOT #arInOutStorage[#nIdx1].arCarrier[#nIdx2].bStatus.%X1 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> #cDummy THEN
+ #stOutCarrStats.nEmptyCarrier += 1;
+ END_IF;
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = #cDummy THEN
+ #stOutCarrStats.nDummy += 1;
+ END_IF;
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination < #nDestMin OR #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination > #nDestMax THEN
+ #stOutCarrStats.stRdyToLeave.nCount += 1;
+ #stOutCarrStats.stRdyToLeave.nLine := #nIdx1;
+ #stOutCarrStats.stRdyToLeave.nPos := #nIdx2;
+ END_IF;
+ END_REGION
+ EXIT;
+ END_REGION
+ ELSIF (#arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = 0) THEN //Verlässt Schleife nach letztem gefundenen Teil um nicht die Schleife für leere Plätze auszuführen
+ REGION Leer
+ #arInOutStorage[#nIdx1].stData.Status.nCount := 0;
+ #arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := TRUE;
+ EXIT;
+ END_REGION
+ END_IF;
+ ELSE
+ REGION Suchlauf
+ REGION Werte für Statistik ermitteln
+ IF NOT #arInOutStorage[#nIdx1].arCarrier[#nIdx2].bStatus.%X1 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> #cDummy THEN
+ #stOutCarrStats.nEmptyCarrier += 1;
+ END_IF;
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = #cDummy THEN
+ #stOutCarrStats.nDummy += 1;
+ END_IF;
+ IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination < #nDestMin OR #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination > #nDestMax THEN
+ #stOutCarrStats.stRdyToLeave.nCount += 1;
+ #stOutCarrStats.stRdyToLeave.nLine := #nIdx1;
+ #stOutCarrStats.stRdyToLeave.nPos := #nIdx2;
+ END_IF;
+ END_REGION
+ END_REGION
+ END_IF;
+ END_FOR;
+ END_FOR;
+ END_REGION
+
+ REGION Gesamtfüllstand
+ //Zählt die einzelnen Füllstände zusammen
+ #nIdx2 := 0;
+ FOR #nIdx1 := 1 TO #nArrayMax DO
+ #nIdx2 := #nIdx2 + #arInOutStorage[#nIdx1].stData.Status.nCount
+ ;
+ END_FOR;
+ #nOutStorageLevel := #nIdx2;
+ END_REGION
+
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Uint2TroString.scl b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Uint2TroString.scl
new file mode 100644
index 0000000..f5914de
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_Uint2TroString.scl
@@ -0,0 +1,53 @@
+FUNCTION "FC_Uint2TroString" : String
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInNumber : UInt;
+ END_VAR
+
+ VAR_TEMP
+ sTmp : String[5];
+ END_VAR
+
+
+BEGIN
+ // Funktion wandelt Uint zu einem Tro-String. Aus 123 wird 12.3, aus 0 wird 0.0 aus 12345 wird 1234.5
+ // Autor: Christian Forkl
+ // Getestet: Ja
+ // 03.08.2021
+
+ #sTmp := RIGHT(IN := UINT_TO_STRING(#nInNumber), L := (LEN(UINT_TO_STRING(#nInNumber)) - 1));
+
+ #FC_Uint2TroString := '';
+
+ IF #nInNumber > 9999 THEN
+ #FC_Uint2TroString[1] := #sTmp[1];
+ #FC_Uint2TroString[2] := #sTmp[2];
+ #FC_Uint2TroString[3] := #sTmp[3];
+ #FC_Uint2TroString[4] := #sTmp[4];
+ #FC_Uint2TroString[5] := '.';
+ #FC_Uint2TroString[6] := #sTmp[5];
+ ELSIF #nInNumber > 999 THEN
+ #FC_Uint2TroString[1] := #sTmp[1];
+ #FC_Uint2TroString[2] := #sTmp[2];
+ #FC_Uint2TroString[3] := #sTmp[3];
+ #FC_Uint2TroString[4] := '.';
+ #FC_Uint2TroString[5] := #sTmp[4];
+ ELSIF #nInNumber > 99 THEN
+ #FC_Uint2TroString[1] := #sTmp[1];
+ #FC_Uint2TroString[2] := #sTmp[2];
+ #FC_Uint2TroString[3] := '.';
+ #FC_Uint2TroString[4] := #sTmp[3];
+ ELSIF #nInNumber > 9 THEN
+ #FC_Uint2TroString[1] := #sTmp[1];
+ #FC_Uint2TroString[2] := '.';
+ #FC_Uint2TroString[3] := #sTmp[2];
+ ELSIF #nInNumber > 0 THEN
+ #FC_Uint2TroString[1] := '0';
+ #FC_Uint2TroString[2] := '.';
+ #FC_Uint2TroString[3] := #sTmp[1];
+ ELSE
+ #FC_Uint2TroString := '0.0';
+ END_IF;
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_usint2String.scl b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_usint2String.scl
new file mode 100644
index 0000000..6566221
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/400_BasicFunctions/FC/FC_usint2String.scl
@@ -0,0 +1,25 @@
+FUNCTION "FC_usint2String" : String
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInNumber : USInt;
+ END_VAR
+
+ VAR_TEMP
+ sTmp : String;
+ END_VAR
+
+
+BEGIN
+ // Funktion wandelt Int zu String. Im Gegensatz zu "Int_To_String" wird das "+" entfernt. Bei negativen Zahlen bleibt das "-" erhalten.
+ // Autor: Christian Forkl
+ // 28.07.2021
+
+ #sTmp := USINT_TO_STRING(#nInNumber);
+ IF #nInNumber >= 0 THEN
+ #FC_usint2String := RIGHT(IN := #sTmp, L := (LEN(#sTmp) - 1));
+ ELSE
+ #FC_usint2String := #sTmp;
+ END_IF;
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_HyperJam.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_HyperJam.xml
new file mode 100644
index 0000000..55df223
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_HyperJam.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+ false
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+ Optimized
+ 0
+ DB_HyperJam
+
+ 44
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4000.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4000.xml
new file mode 100644
index 0000000..11b3c70
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4000.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4000
+
+ 4000
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4001.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4001.xml
new file mode 100644
index 0000000..7d7b5c2
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4001.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4001
+
+ 4001
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4002.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4002.xml
new file mode 100644
index 0000000..a59273e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4002.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4002
+
+ 4002
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4003.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4003.xml
new file mode 100644
index 0000000..64ad4d2
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4003.xml
@@ -0,0 +1,257 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4003
+
+ 4003
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4004.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4004.xml
new file mode 100644
index 0000000..3e3b7a5
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4004.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4004
+
+ 4004
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4005.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4005.xml
new file mode 100644
index 0000000..c4d0337
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4005.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4005
+
+ 4005
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4006.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4006.xml
new file mode 100644
index 0000000..a64135e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4006.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4006
+
+ 4006
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4007.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4007.xml
new file mode 100644
index 0000000..7246f8a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4007.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4007
+
+ 4007
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4008.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4008.xml
new file mode 100644
index 0000000..7f91aa6
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4008.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4008
+
+ 4008
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4009.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4009.xml
new file mode 100644
index 0000000..d6eebcc
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4009.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4009
+
+ 4009
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4010.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4010.xml
new file mode 100644
index 0000000..a17f1b5
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4010.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4010
+
+ 4010
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4011.xml b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4011.xml
new file mode 100644
index 0000000..870c11b
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/DB_JamArea4011.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_JamArea4011
+
+ 4011
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/700_Jams/FC_Call_Jams.scl b/=A01+UH04-KF00/Programmbausteine/700_Jams/FC_Call_Jams.scl
new file mode 100644
index 0000000..7b49b33
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/700_Jams/FC_Call_Jams.scl
@@ -0,0 +1,328 @@
+FUNCTION "FC_Call_Jams" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_TEMP
+ nIdx : Int;
+ END_VAR
+
+
+BEGIN
+ REGION Jam Füllstände
+
+ REGION Hyper-Jam
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikHyperJam"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikHyperJam"],
+ arInOutJamCarrier := "DB_HyperJam".stHyperJam.arCarrier,
+ stInOutData := "DB_HyperJam".stHyperJam.stData);
+
+ "DB_Statistics".nJamCount := "DB_HyperJam".stHyperJam.stData.Status.nCount;
+
+ END_REGION
+
+ REGION JamArea4000
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4000_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4000_1"],
+ arInOutJamCarrier := "DB_JamArea4000".stJam4000_1.arCarrier,
+ stInOutData := "DB_JamArea4000".stJam4000_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4000".stJam4000_1.stData.Status.nCount;
+
+ END_REGION
+
+ REGION JamArea4001
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4001_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4001_1"],
+ arInOutJamCarrier := "DB_JamArea4001".stJam4001_1.arCarrier,
+ stInOutData := "DB_JamArea4001".stJam4001_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4001".stJam4001_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4001_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4001_2"],
+ arInOutJamCarrier := "DB_JamArea4001".stJam4001_2.arCarrier,
+ stInOutData := "DB_JamArea4001".stJam4001_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4001".stJam4001_2.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4002
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4002_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4002_1"],
+ arInOutJamCarrier := "DB_JamArea4002".stJam4002_1.arCarrier,
+ stInOutData := "DB_JamArea4002".stJam4002_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4002".stJam4002_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4002_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4002_2"],
+ arInOutJamCarrier := "DB_JamArea4002".stJam4002_2.arCarrier,
+ stInOutData := "DB_JamArea4002".stJam4002_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4002".stJam4002_2.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4003
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_1"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_1.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_2"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_2.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_2.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_3"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_3"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_3.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_3.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_3.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_4"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_4"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_4.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_4.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_4.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_5"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_5"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_5.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_5.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_5.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_6"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_6"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_6.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_6.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_6.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_7"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_7"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_7.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_7.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_7.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_8"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_8"],
+ arInOutJamCarrier := "DB_JamArea4003".stJam4003_8.arCarrier,
+ stInOutData := "DB_JamArea4003".stJam4003_8.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_8.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4004
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4004_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4004_1"],
+ arInOutJamCarrier := "DB_JamArea4004".stJam4004_1.arCarrier,
+ stInOutData := "DB_JamArea4004".stJam4004_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4004".stJam4004_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4004_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4004_2"],
+ arInOutJamCarrier := "DB_JamArea4004".stJam4004_2.arCarrier,
+ stInOutData := "DB_JamArea4004".stJam4004_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4004".stJam4004_2.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4005
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4005_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4005_1"],
+ arInOutJamCarrier := "DB_JamArea4005".stJam4005_1.arCarrier,
+ stInOutData := "DB_JamArea4005".stJam4005_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4005".stJam4005_1.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4006
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4006_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4006_1"],
+ arInOutJamCarrier := "DB_JamArea4006".stJam4006_1.arCarrier,
+ stInOutData := "DB_JamArea4006".stJam4006_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4006".stJam4006_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4006_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4006_2"],
+ arInOutJamCarrier := "DB_JamArea4006".stJam4006_2.arCarrier,
+ stInOutData := "DB_JamArea4006".stJam4006_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4006".stJam4006_2.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4007
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4007_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4007_1"],
+ arInOutJamCarrier := "DB_JamArea4007".stJam4007_1.arCarrier,
+ stInOutData := "DB_JamArea4007".stJam4007_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4007".stJam4007_1.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4008
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4008_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4008_1"],
+ arInOutJamCarrier := "DB_JamArea4008".stJam4008_1.arCarrier,
+ stInOutData := "DB_JamArea4008".stJam4008_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4008".stJam4008_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4008_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4008_2"],
+ arInOutJamCarrier := "DB_JamArea4008".stJam4008_2.arCarrier,
+ stInOutData := "DB_JamArea4008".stJam4008_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4008".stJam4008_2.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4009
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4009_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4009_1"],
+ arInOutJamCarrier := "DB_JamArea4009".stJam4009_1.arCarrier,
+ stInOutData := "DB_JamArea4009".stJam4009_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4009".stJam4009_1.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4010
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4010_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4010_1"],
+ arInOutJamCarrier := "DB_JamArea4010".stJam4010_1.arCarrier,
+ stInOutData := "DB_JamArea4010".stJam4010_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4010".stJam4010_1.stData.Status.nCount;
+
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4010_2"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4010_2"],
+ arInOutJamCarrier := "DB_JamArea4010".stJam4010_2.arCarrier,
+ stInOutData := "DB_JamArea4010".stJam4010_2.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4010".stJam4010_2.stData.Status.nCount;
+ END_REGION
+
+ REGION JamArea4011
+ "FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4011_1"],
+ stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4011_1"],
+ arInOutJamCarrier := "DB_JamArea4011".stJam4011_1.arCarrier,
+ stInOutData := "DB_JamArea4011".stJam4011_1.stData);
+
+ "DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4011".stJam4011_1.stData.Status.nCount;
+ END_REGION
+
+ END_REGION
+
+ REGION Auswertung
+ REGION Leere Carrier
+ "DB_Statistics".nEmptyCarrierCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO
+ "DB_Statistics".nEmptyCarrierCount := "DB_Statistics".nEmptyCarrierCount + "DB_Statistics".arJamStatisticsStandard[#nIdx].nEmptyCarrier;
+ END_FOR;
+
+ END_REGION
+
+ REGION Beladene Carrier
+ "DB_Statistics".nLoadedCarrierCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO
+ "DB_Statistics".nLoadedCarrierCount := "DB_Statistics".nLoadedCarrierCount + "DB_Statistics".arJamStatisticsStandard[#nIdx].nLoadedCarrier;
+ END_FOR;
+ END_REGION
+
+ REGION Dummy
+ "DB_Statistics".nDummyCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO
+ "DB_Statistics".nDummyCount := "DB_Statistics".nDummyCount + "DB_Statistics".arJamStatisticsStandard[#nIdx].nDummyCarrier;
+ END_FOR;
+ END_REGION
+
+ REGION Advanced
+ REGION Multi-Purpose-Station 1
+ //RealCount = Pre-Buffer Workstation real
+ //ReservedCount = Anzahl Carrier die noch zu dieser Station wollen
+ //TotalCount = Real + Reserved
+
+ "DB_Statistics".stWorkstations.MPS1.nRealCount := "DB_JamArea4008".stJam4008_1.stData.Status.nCount;
+
+ "DB_Statistics".stWorkstations.MPS1.nReservedCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO
+ IF (#nIdx <> "cStatistikJam4008_1") AND (#nIdx <> "cStatistikJam4008_2") AND (#nIdx <> "cStatistikJam4009_1") THEN //eigene Station nicht mitzählen...oder Destination bei Einfahrt in Station ändern, dann wäre es egal
+ "DB_Statistics".stWorkstations.MPS1.nReservedCount := "DB_Statistics".stWorkstations.MPS1.nReservedCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestMPS1;
+ END_IF;
+ END_FOR;
+
+ "DB_Statistics".stWorkstations.MPS1.nTotalCount := "DB_Statistics".stWorkstations.MPS1.nRealCount + "DB_Statistics".stWorkstations.MPS1.nReservedCount;
+
+ END_REGION ;
+
+ REGION Multi-Purpose-Station 2
+ "DB_Statistics".stWorkstations.MPS2.nRealCount := "DB_JamArea4006".stJam4006_1.stData.Status.nCount;
+
+ "DB_Statistics".stWorkstations.MPS2.nReservedCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO
+ IF (#nIdx <> "cStatistikJam4006_1") AND (#nIdx <> "cStatistikJam4006_2") AND (#nIdx <> "cStatistikJam4007_1") THEN //eigene Station nicht mitzählen...oder Destination bei Einfahrt in Station ändern, dann wäre es egal
+ "DB_Statistics".stWorkstations.MPS2.nReservedCount := "DB_Statistics".stWorkstations.MPS2.nReservedCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestMPS2;
+ END_IF;
+ END_FOR;
+
+ "DB_Statistics".stWorkstations.MPS2.nTotalCount := "DB_Statistics".stWorkstations.MPS2.nRealCount + "DB_Statistics".stWorkstations.MPS2.nReservedCount;
+ END_REGION
+
+ REGION Multi-Purpose-Station 3
+ "DB_Statistics".stWorkstations.MPS3.nRealCount := "DB_JamArea4004".stJam4004_1.stData.Status.nCount;
+
+ "DB_Statistics".stWorkstations.MPS3.nReservedCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO
+ IF (#nIdx <> "cStatistikJam4004_1") AND (#nIdx <> "cStatistikJam4004_2") AND (#nIdx <> "cStatistikJam4005_1") THEN //eigene Station nicht mitzählen...oder Destination bei Einfahrt in Station ändern, dann wäre es egal
+ "DB_Statistics".stWorkstations.MPS3.nReservedCount := "DB_Statistics".stWorkstations.MPS3.nReservedCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestMPS3;
+ END_IF;
+ END_FOR;
+
+ "DB_Statistics".stWorkstations.MPS3.nTotalCount := "DB_Statistics".stWorkstations.MPS3.nRealCount + "DB_Statistics".stWorkstations.MPS3.nReservedCount;
+ END_REGION
+
+ REGION Recirce
+ "DB_Statistics".nRecircCount := 0;
+ FOR #nIdx := 0 TO "cNoStatistikJam" DO //eingrenzen?
+ IF NOT (#nIdx = "cStatistikJam4003_2") THEN
+ "DB_Statistics".nRecircCount := "DB_Statistics".nRecircCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestRecirce;
+ END_IF;
+ END_FOR;
+
+ END_REGION
+
+ END_REGION
+ END_REGION
+
+ REGION Prozessdaten
+ "DB_Prozessdaten".stWorkStations.stMPS1.nCountReal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS1.nRealCount);
+ "DB_Prozessdaten".stWorkStations.stMPS1.nCountReserved := UINT_TO_INT("DB_Statistics".stWorkstations.MPS1.nReservedCount);
+ "DB_Prozessdaten".stWorkStations.stMPS1.nCountTotal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS1.nTotalCount);
+
+ "DB_Prozessdaten".stWorkStations.stMPS2.nCountReal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS2.nRealCount);
+ "DB_Prozessdaten".stWorkStations.stMPS2.nCountReserved := UINT_TO_INT("DB_Statistics".stWorkstations.MPS2.nReservedCount);
+ "DB_Prozessdaten".stWorkStations.stMPS2.nCountTotal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS2.nTotalCount);
+
+ "DB_Prozessdaten".stWorkStations.stMPS3.nCountReal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS3.nRealCount);
+ "DB_Prozessdaten".stWorkStations.stMPS3.nCountReserved := UINT_TO_INT("DB_Statistics".stWorkstations.MPS3.nReservedCount);
+ "DB_Prozessdaten".stWorkStations.stMPS3.nCountTotal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS3.nTotalCount);
+
+ END_REGION
+
+ REGION HMI
+ "DB_Interface_HMI".stStatistics.nJamCount := "DB_Statistics".nJamCount;
+ "DB_Interface_HMI".stStatistics.nLoadedCount := "DB_Statistics".nLoadedCarrierCount;
+ "DB_Interface_HMI".stStatistics.nEmptyCount := "DB_Statistics".nEmptyCarrierCount;
+ "DB_Interface_HMI".stStatistics.nDummyCount := "DB_Statistics".nDummyCount;
+ END_REGION
+
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_Buffer_CommunicationWCSBL.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_Buffer_CommunicationWCSBL.xml
new file mode 100644
index 0000000..bbcfe17
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_Buffer_CommunicationWCSBL.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ Optimized
+ 100
+ DB_Buffer_CommunicationWCSBL
+
+ 47
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_Buffer_CommunicationWES.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_Buffer_CommunicationWES.xml
new file mode 100644
index 0000000..ed5aa1b
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_Buffer_CommunicationWES.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ Optimized
+ 100
+ DB_Buffer_CommunicationWES
+
+ 48
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_CommunicationParameters.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_CommunicationParameters.xml
new file mode 100644
index 0000000..d54169e
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_CommunicationParameters.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+ false
+
+
+
+ Optimized
+ 100
+ DB_CommunicationParameters
+
+ 92
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_LGF_FIFO_CommWCSBL.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_LGF_FIFO_CommWCSBL.xml
new file mode 100644
index 0000000..9519a49
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_LGF_FIFO_CommWCSBL.xml
@@ -0,0 +1,142 @@
+
+
+
+
+
+ Siemens_Industry_Support
+ LGF
+ LGF_FIFO
+ LGF_FIFO
+ FB
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ DB_LGF_FIFO_CommWCSBL
+
+ 9
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_LGF_FIFO_CommWES.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_LGF_FIFO_CommWES.xml
new file mode 100644
index 0000000..27aeeae
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/DB_LGF_FIFO_CommWES.xml
@@ -0,0 +1,142 @@
+
+
+
+
+
+ Siemens_Industry_Support
+ LGF
+ LGF_FIFO
+ LGF_FIFO
+ FB
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ DB_LGF_FIFO_CommWES
+
+ 12
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWCSBL.scl b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWCSBL.scl
new file mode 100644
index 0000000..5cb7c75
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWCSBL.scl
@@ -0,0 +1,181 @@
+FUNCTION_BLOCK "FB_CommunicationWCSBL"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ fbInOutSendFIFO : "LGF_FIFO";
+ arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
+ END_VAR
+
+ VAR
+ fbTeleHandler : "FB_TCP_LCOM_TeleHandler";
+ xReset : Bool;
+ xSendTele : Bool;
+ stTelegramToSend : "UDT_TelegramData_Send";
+ nState : Int;
+ xRetVal : Bool;
+ stNewTelegram { S7_SetPoint := 'False'} : "UDT_TelegramData";
+ stTeleGOHDRespM : "UDT_Telegram_GOHDRespM";
+ rTrigConnectionActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ xSendHeartbeat : Bool;
+ tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
+ END_VAR
+
+ VAR_TEMP
+ empty : "UDT_TelegramData_Send";
+ xSuccess : Bool;
+ stLogTelegram : "UDT_TelegramData_Send";
+ i : Int;
+ END_VAR
+
+
+BEGIN
+ REGION Info
+ // Kommunikation zu Fortna WCSBL
+ // Telegramme:
+ // Senden:
+ // GOHDReqM (Zielanfrage) | Von Schönenberger -> Fortna WCSBL
+ // GOHDUM (Update) | Von Schönenberger -> Fortna WCSBL
+ // Empfangen:
+ // GOHDRespM (Antwort auf Zielanfrage) | Von Fortna WCSBL -> Schönenberger
+ END_REGION
+
+ REGION Call TeleHandler
+ // hardware identifier of the local interface, PLC tags--Default tag table--System constant default value: PROFINET_interface_1 = 64
+ #fbTeleHandler.stInTcpTypeConfig.connection.interfaceID := "Local~PN-Interface_Customer";
+ //unique connection identifier (W#16#0001...W#16#0FFF)
+ #fbTeleHandler.stInTcpTypeConfig.connection.connectionID := 40;
+ //used protocol: 1=TCP protocol, 2=LCom protocol
+ #fbTeleHandler.stInTcpTypeConfig.connection.comService := "LCOM_TCP_CONNECTION";
+ //FALSE: passive (server), TRUE: active connection establishment (client)
+ #fbTeleHandler.stInTcpTypeConfig.connection.isClient := TRUE;
+ //TRUE: accept requests from all partners, FALSE: only specified partner is allowed in case of server
+ #fbTeleHandler.stInTcpTypeConfig.connection.acceptUnknownPartner := TRUE;
+ //local port number (possible values: 1...49151; caution: some may be reserved for internal use; recommended values: 2000...5000)
+ #fbTeleHandler.stInTcpTypeConfig.connection.localPort := 30650;
+ //partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 30650;
+
+ //partner IP address xxx.xxx.xxx.xxx = [1].[2].[3].[4], use only in case of client or specified partner
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[1] := 172;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[2] := 22;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[3] := 160;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[4] := 23;
+
+ #fbTeleHandler.stInTcpTypeConfig.connection.connectType := "LCOM_CON_TYPE_IPV4";
+
+ // Telegramdefinition
+ #fbTeleHandler.stInTelegramDefinition.sStartMarker := '$02';
+ #fbTeleHandler.stInTelegramDefinition.sEndMarker := '$03';
+ #fbTeleHandler.stInTelegramDefinition.sStartMarkerSend := '$02';
+ #fbTeleHandler.stInTelegramDefinition.sEndMarkerSend := '$03';
+ #fbTeleHandler.stInTelegramDefinition.bSeparatorByte := '$1D'; //',';
+ #fbTeleHandler.stInTelegramDefinition.nLength := 0;
+ #fbTeleHandler.stInTelegramDefinition.nTelegramIDDataField := 0;
+ #fbTeleHandler.stInTelegramDefinition.xTelegramIDIsNumber := FALSE;
+
+ #fbTeleHandler(xInReset := #xReset,
+ xInOutSendTele := #xSendTele,
+ stInTelegramSend := #stTelegramToSend,
+ fbInOutSendFIFO:= #fbInOutSendFIFO,
+ arFifoSendBuffer:=#arFifoSendBuffer);
+
+ END_REGION
+
+ REGION Reset SequenceNumber
+ #rTrigConnectionActive(CLK := #fbTeleHandler.xOutConnectionActive);
+
+ IF #rTrigConnectionActive.Q THEN
+ "DB_CommunicationParameters".nSeqNumWCSBL := 0;
+ END_IF;
+ END_REGION
+
+ REGION Send Heartbeat
+ IF #fbTeleHandler.xOutConnectionActive THEN
+ #xSendHeartbeat := TRUE;
+
+ IF #tOnHeartbeat.Q THEN
+ #xSendHeartbeat := FALSE;
+ "FC_Send_HB"(sInPLCID := "cPLCID",
+ nInPartnerType:= 1,
+ FIFO := "DB_LGF_FIFO_CommWCSBL",
+ BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
+ nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
+ END_IF;
+ ELSE
+ #xSendHeartbeat := FALSE;
+ END_IF;
+
+ #tOnHeartbeat(IN := #xSendHeartbeat,
+ PT := t#15s);
+ END_REGION
+
+ REGION Empfangen
+ CASE #nState OF
+ 0: // Waiting
+ //New Telegram
+ IF #fbTeleHandler.xOutTelegramAvailable THEN
+ #fbTeleHandler.xInGetFirst := TRUE;
+ #nState := 100;
+ END_IF;
+ 100: // Get new Telegram
+ #stNewTelegram := #fbTeleHandler.stOutNewTelegram;
+ #fbTeleHandler.xInGetFirst := FALSE;
+
+ #stLogTelegram.nDataCount := #stNewTelegram.nDataCount;
+
+ FOR #i := 1 TO 15 DO
+ #stLogTelegram.arDataString[#i] := #stNewTelegram.arDataString[#i];
+ END_FOR;
+
+ REGION LOG
+ IF "FB_CommunicationLogger_DB".fbTeleHandler.xOutConnectionActive THEN
+ "FC_FIFO_Append"(DataIn := #stLogTelegram,
+ InitialItem := #empty,
+ MaxNo := 100,
+ Success => #xSuccess,
+ fifoBuffer := "DB_LGF_FIFO_CommLogger",
+ buffer := "DB_Buffer_CommunicationLogger".BUFFER);
+ END_IF;
+
+ END_REGION
+
+ #nState := 200;
+ 200: //Analyze Telegram
+ IF #stNewTelegram.arDataString[3] = 'GOHDRespM' THEN
+ #stTeleGOHDRespM.stPayload.sDecisionPoint := #stNewTelegram.arDataString[3];
+
+ // Parse field [4] into
+
+
+
+
+ (* REGION Send ACK
+ "FC_TeleClear"(#stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 1,
+ sData := '4711',
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 2,
+ sData := #stNewTelegram.arDataString[2],
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 3,
+ sData := 'ACK',
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 4,
+ sData := '123',
+ stInOutTelegram := #stTelegramToSend);
+ #xSendTele := TRUE;
+ END_REGION *)
+
+
+ END_IF;
+
+
+ #nState := 0;
+ END_CASE;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWCSBL_DB.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWCSBL_DB.xml
new file mode 100644
index 0000000..8fd19fa
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWCSBL_DB.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+ FB_CommunicationWCSBL
+ FB
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ FB_CommunicationWCSBL_DB
+
+ 10
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWES_DeviceHub.scl b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWES_DeviceHub.scl
new file mode 100644
index 0000000..1bd2317
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWES_DeviceHub.scl
@@ -0,0 +1,168 @@
+FUNCTION_BLOCK "FB_CommunicationWES_DeviceHub"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ fbInOutSendFIFO : "LGF_FIFO";
+ arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
+ END_VAR
+
+ VAR
+ fbTeleHandler : "FB_TCP_LCOM_TeleHandler";
+ xReset : Bool;
+ xSendTele : Bool;
+ stTelegramToSend : "UDT_TelegramData_Send";
+ nState : Int;
+ xRetVal : Bool;
+ stNewTelegram { S7_SetPoint := 'False'} : "UDT_TelegramData";
+ stTeleGOHDRespM : "UDT_Telegram_GOHDRespM";
+ rTrigConnectionActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ xSendHeartbeat : Bool;
+ tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
+ END_VAR
+
+
+BEGIN
+ REGION Info
+ // Kommunikation zu Fortna WES/ASRS Driver
+ // Telegramme:
+ // Senden:
+ // CTMP (Container Mapping) | Von Schönenberger -> Fortna WES/DeviceHub
+ // UNLDResp (Unload Response) | Von Schönenberger -> Fortna WES/DeviceHub
+ // Empfangen:
+ // WSAD (Workstation Activation) | Fortna WES/DeviceHub -> Schönenberger
+ // INDX (Workstation Index) | Fortna WES/DeviceHub -> Schönenberger
+ // ENCT (End Container) | Fortna WES/DeviceHub -> Schönenberger
+ END_REGION
+
+ REGION Call TeleHandler
+ // hardware identifier of the local interface, PLC tags--Default tag table--System constant default value: PROFINET_interface_1 = 64
+ #fbTeleHandler.stInTcpTypeConfig.connection.interfaceID := "Local~PN-Interface_Customer";
+ //unique connection identifier (W#16#0001...W#16#0FFF)
+ #fbTeleHandler.stInTcpTypeConfig.connection.connectionID := 41;
+ //used protocol: 1=TCP protocol, 2=LCom protocol
+ #fbTeleHandler.stInTcpTypeConfig.connection.comService := "LCOM_TCP_CONNECTION";
+ //FALSE: passive (server), TRUE: active connection establishment (client)
+ #fbTeleHandler.stInTcpTypeConfig.connection.isClient := TRUE;
+ //TRUE: accept requests from all partners, FALSE: only specified partner is allowed in case of server
+ #fbTeleHandler.stInTcpTypeConfig.connection.acceptUnknownPartner := TRUE;
+ //local port number (possible values: 1...49151; caution: some may be reserved for internal use; recommended values: 2000...5000)
+ #fbTeleHandler.stInTcpTypeConfig.connection.localPort := 30636;
+ //partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 30636;
+
+ //partner IP address xxx.xxx.xxx.xxx = [1].[2].[3].[4], use only in case of client or specified partner
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[1] := 172;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[2] := 22;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[3] := 160;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[4] := 21;
+
+ #fbTeleHandler.stInTcpTypeConfig.connection.connectType := "LCOM_CON_TYPE_IPV4";
+
+ // Telegramdefinition
+ #fbTeleHandler.stInTelegramDefinition.sStartMarker := '$02';
+ #fbTeleHandler.stInTelegramDefinition.sEndMarker := '$03';
+ #fbTeleHandler.stInTelegramDefinition.sStartMarkerSend := '$02';
+ #fbTeleHandler.stInTelegramDefinition.sEndMarkerSend := '$03';
+ #fbTeleHandler.stInTelegramDefinition.bSeparatorByte := '$1D'; //',';
+ #fbTeleHandler.stInTelegramDefinition.nLength := 0;
+ #fbTeleHandler.stInTelegramDefinition.nTelegramIDDataField := 0;
+ #fbTeleHandler.stInTelegramDefinition.xTelegramIDIsNumber := FALSE;
+
+ #fbTeleHandler(xInReset := #xReset,
+ xInOutSendTele := #xSendTele,
+ stInTelegramSend := #stTelegramToSend,
+ fbInOutSendFIFO := #fbInOutSendFIFO,
+ arFifoSendBuffer := #arFifoSendBuffer);
+
+ END_REGION
+
+ REGION Reset SequenceNumber
+ #rTrigConnectionActive(CLK := #fbTeleHandler.xOutConnectionActive);
+
+ IF #rTrigConnectionActive.Q THEN
+ "DB_CommunicationParameters".nSeqNumWESDeviceHub := 0;
+ END_IF;
+ END_REGION
+
+ REGION Send Heartbeat
+ IF #fbTeleHandler.xOutConnectionActive THEN
+ #xSendHeartbeat := TRUE;
+
+ IF #tOnHeartbeat.Q THEN
+ #xSendHeartbeat := FALSE;
+ "FC_Send_HB"(sInPLCID := "cPLCID",
+ nInPartnerType:= 2,
+ FIFO := "DB_LGF_FIFO_CommWES",
+ BUFFER := "DB_Buffer_CommunicationWES".BUFFER,
+ nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWESDeviceHub);
+ END_IF;
+ ELSE
+ #xSendHeartbeat := FALSE;
+ END_IF;
+
+ #tOnHeartbeat(IN := #xSendHeartbeat,
+ PT := t#15s);
+ END_REGION
+
+ REGION Empfangen
+ CASE #nState OF
+ 0: // Waiting
+ //New Telegram
+ IF #fbTeleHandler.xOutTelegramAvailable THEN
+ #fbTeleHandler.xInGetFirst := TRUE;
+ #nState := 100;
+ END_IF;
+ 100: // Get new Telegram
+ #stNewTelegram := #fbTeleHandler.stOutNewTelegram;
+ #fbTeleHandler.xInGetFirst := FALSE;
+ #nState := 200;
+ 200: //Analyze Telegram
+ IF #stNewTelegram.arDataString[3] = 'WSAD' THEN // Workstation Activation
+ IF #stNewTelegram.arDataString[4] = 'GOH-DWS-101' THEN
+ "DB_Prozessdaten".stWorkStations.stMPS1.nActivationStatus := STRING_TO_DINT(#stNewTelegram.arDataString[5]);
+ "DB_Prozessdaten".stWorkStations.stMPS1.nFunctionCode := STRING_TO_DINT(#stNewTelegram.arDataString[6]);
+ ELSIF #stNewTelegram.arDataString[4] = 'GOH-DWS-102' THEN
+ "DB_Prozessdaten".stWorkStations.stMPS2.nActivationStatus := STRING_TO_DINT(#stNewTelegram.arDataString[5]);
+ "DB_Prozessdaten".stWorkStations.stMPS2.nFunctionCode := STRING_TO_DINT(#stNewTelegram.arDataString[6]);
+ ELSIF #stNewTelegram.arDataString[4] = 'GOH-DWS-103' THEN
+ "DB_Prozessdaten".stWorkStations.stMPS3.nActivationStatus := STRING_TO_DINT(#stNewTelegram.arDataString[5]);
+ "DB_Prozessdaten".stWorkStations.stMPS3.nFunctionCode := STRING_TO_DINT(#stNewTelegram.arDataString[6]);
+ ELSE
+ // ERROR
+ // Invalid Workstation
+ ;
+ END_IF;
+ ELSIF #stNewTelegram.arDataString[3] = 'INDX' THEN // INDEX
+ ; //todo
+ ELSIF #stNewTelegram.arDataString[3] = 'ENCT' THEN
+ ; //todo
+ (* REGION Send ACK
+ "FC_TeleClear"(#stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 1,
+ sData := '4711',
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 2,
+ sData := #stNewTelegram.arDataString[2],
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 3,
+ sData := 'ACK',
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 4,
+ sData := '123',
+ stInOutTelegram := #stTelegramToSend);
+ #xSendTele := TRUE;
+ END_REGION *)
+
+ ELSE
+ ;//ERROR
+ END_IF;
+
+ #nState := 0;
+ END_CASE;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWES_DeviceHub_DB.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWES_DeviceHub_DB.xml
new file mode 100644
index 0000000..103d1ab
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/FB_CommunicationWES_DeviceHub_DB.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+ FB_CommunicationWES_DeviceHub
+ FB
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ FB_CommunicationWES_DeviceHub_DB
+
+ 13
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_DateAsString_ISO.liblink b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_DateAsString_ISO.liblink
new file mode 100644
index 0000000..293b7b7
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_DateAsString_ISO.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 778e978f-0132-4d3e-92e4-bac5ae8c94b4
+VersionGuid: fa6b9e1f-06d9-44db-9f19-f50f411a47a7
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Get_LaneStatus.scl b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Get_LaneStatus.scl
new file mode 100644
index 0000000..7d52be2
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Get_LaneStatus.scl
@@ -0,0 +1,23 @@
+FUNCTION "FC_Get_LaneStatus" : String
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ stInOutJamData : "stJamData"; // Staubereichs info
+ stInOutWorkStation : "UDT_Workstation"; // Workstation info
+ END_VAR
+
+
+BEGIN
+ IF #stInOutWorkStation.nCountTotal >= #stInOutJamData.Config.nCapacitySet OR //voll
+ // (#stInOutWorkStation.nActivationStatus = 0) OR auch berücksichtigen?!
+ #stInOutJamData.Status.nCount >= #stInOutJamData.Config.nCapacitySet OR //voll
+ #stInOutJamData.Status.bByte.%X1 OR //Stau
+ #stInOutJamData.Status.bByte.%X2 OR //Einfahrt gesperrt
+ #stInOutJamData.Status.bByte.%X4 // Error
+ THEN
+ #FC_Get_LaneStatus := '0';
+ ELSE
+ #FC_Get_LaneStatus := '1';
+ END_IF;
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_GOHDReqM.liblink b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_GOHDReqM.liblink
new file mode 100644
index 0000000..5456236
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_GOHDReqM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 5dd01bcf-9240-4599-b662-501f9aa0983e
+VersionGuid: ac5ee7ba-4136-4a93-ac9c-363a28d7ebae
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_GOHDUM.liblink b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_GOHDUM.liblink
new file mode 100644
index 0000000..86f5c67
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_GOHDUM.liblink
@@ -0,0 +1,2 @@
+TypeGuid: c13bbb3e-468d-4003-bc69-30571b148328
+VersionGuid: a9add86c-6810-4ce0-9e3c-8a4fe1fb5768
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_HB.liblink b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_HB.liblink
new file mode 100644
index 0000000..77fc10c
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_Send_HB.liblink
@@ -0,0 +1,2 @@
+TypeGuid: b4ee7c11-1f91-4065-ac19-6e95973c6878
+VersionGuid: 76c93bac-8829-4bd8-8eae-21843fddd842
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_SequenceNumber.liblink b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_SequenceNumber.liblink
new file mode 100644
index 0000000..c57746d
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_SequenceNumber.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 38f9fbd2-eefa-4b3d-9910-bd5a9e03eca6
+VersionGuid: 4ea53fbf-b035-4eda-ac6d-cf23978f7d42
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_TimeAsString_ISO.liblink b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_TimeAsString_ISO.liblink
new file mode 100644
index 0000000..298e4e6
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Functions/FC_TimeAsString_ISO.liblink
@@ -0,0 +1,2 @@
+TypeGuid: fa21a558-0fb1-4e2e-ab9e-87ba1a763150
+VersionGuid: beeb038b-f634-485f-9c3c-a77af36bc924
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Misc/FB_FortnaTele_Placeholder.scl b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Misc/FB_FortnaTele_Placeholder.scl
new file mode 100644
index 0000000..2f2029f
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/Fortna-WES-WCS/Misc/FB_FortnaTele_Placeholder.scl
@@ -0,0 +1,36 @@
+FUNCTION_BLOCK "FB_FortnaTele_Placeholder"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR
+ Static_1 : "UDT_Payload_CRCanM";
+ Static_2 : "UDT_Payload_CReqM";
+ Static_3 : "UDT_Payload_CRRespM";
+ Static_4 : "UDT_Payload_CSRespM";
+ Static_5 : "UDT_Payload_CTMP";
+ Static_6 : "UDT_Payload_ECNT";
+ Static_7 : "UDT_Payload_GOHDReqM";
+ Static_8 : "UDT_Payload_GOHDRespM";
+ Static_9 : "UDT_Payload_GOHDUM";
+ Static_10 : "UDT_Payload_INDX";
+ Static_11 : "UDT_Payload_UNLDResp";
+ Static_12 : "UDT_Payload_WSAD";
+ Static_13 : "UDT_Telegram_CRCanM";
+ Static_14 : "UDT_Telegram_CReqM";
+ Static_15 : "UDT_Telegram_CRRespM";
+ Static_16 : "UDT_Telegram_CSRespM";
+ Static_17 : "UDT_Telegram_CTMP";
+ Static_18 : "UDT_Telegram_ECNT";
+ Static_19 : "UDT_Telegram_GOHDReqM";
+ Static_20 : "UDT_Telegram_GOHDRespM";
+ Static_21 : "UDT_Telegram_GOHDUM";
+ Static_22 : "UDT_Telegram_INDX";
+ Static_23 : "UDT_Telegram_UNLDResp";
+ Static_24 : "UDT_Telegram_WSAD";
+ Static_25 : "UDT_Header";
+ Static_26 : "UDT_Workstation";
+ END_VAR
+
+
+BEGIN
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_Buffer_CommunicationLogger.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_Buffer_CommunicationLogger.xml
new file mode 100644
index 0000000..4af2ce2
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_Buffer_CommunicationLogger.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ Optimized
+ 100
+ DB_Buffer_CommunicationLogger
+
+ 95
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_CommunciationParametersLogger.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_CommunciationParametersLogger.xml
new file mode 100644
index 0000000..49aeeac
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_CommunciationParametersLogger.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_CommunciationParametersLogger
+
+ 97
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_LGF_FIFO_CommLogger.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_LGF_FIFO_CommLogger.xml
new file mode 100644
index 0000000..d23d4ea
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/DB_LGF_FIFO_CommLogger.xml
@@ -0,0 +1,142 @@
+
+
+
+
+
+ Siemens_Industry_Support
+ LGF
+ LGF_FIFO
+ LGF_FIFO
+ FB
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ DB_LGF_FIFO_CommLogger
+
+ 96
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/FB_CommunicationLogger.scl b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/FB_CommunicationLogger.scl
new file mode 100644
index 0000000..9d193e9
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/FB_CommunicationLogger.scl
@@ -0,0 +1,228 @@
+FUNCTION_BLOCK "FB_CommunicationLogger"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ fbInOutSendFIFO : "LGF_FIFO";
+ arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
+ END_VAR
+
+ VAR
+ fbTeleHandler : "FB_TCP_LCOM_TeleHandler";
+ xReset : Bool;
+ xSendTele : Bool;
+ stTelegramToSend : "UDT_TelegramData_Send";
+ nState : Int;
+ xRetVal : Bool;
+ stNewTelegram { S7_SetPoint := 'False'} : "UDT_TelegramData";
+ stTeleGOHDRespM : "UDT_Telegram_GOHDRespM";
+ arPayloadHelp : Array[0..200] of Byte;
+ cnt : UInt;
+ LStream_JsonDeserializer_Instance : "LStream_JsonDeserializer";
+ typeElement { S7_SetPoint := 'False'} : Array[0..10] of "LStream_typeElement" := [(2, 'DecisionPoint', (), (), ()), (3, 'GIN', (), (), ()), (2, 'Barcode', (), (), ()), (1, 'Actions', (), (), true), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ())];
+ xDone : Bool;
+ rTrigConnectionActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ xSendHeartbeat : Bool;
+ tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
+ END_VAR
+
+ VAR_TEMP
+ xStart : Bool;
+ test : "UDT_TelegramData_Send";
+ END_VAR
+
+
+BEGIN
+ REGION Info
+ // Kommunikation zu Fortna WCSBL
+ // Telegramme:
+ // Senden:
+ // GOHDReqM (Zielanfrage) | Von Schönenberger -> Fortna WCSBL
+ // GOHDUM (Update) | Von Schönenberger -> Fortna WCSBL
+ // Empfangen:
+ // GOHDRespM (Antwort auf Zielanfrage) | Von Fortna WCSBL -> Schönenberger
+ END_REGION
+
+ REGION Call TeleHandler
+ // hardware identifier of the local interface, PLC tags--Default tag table--System constant default value: PROFINET_interface_1 = 64
+ #fbTeleHandler.stInTcpTypeConfig.connection.interfaceID := "Local~PN-Interface_SchSy"; //"Local"~PN-Interface_Customer";
+ //unique connection identifier (W#16#0001...W#16#0FFF)
+ #fbTeleHandler.stInTcpTypeConfig.connection.connectionID := 100;
+ //used protocol: 1=TCP protocol, 2=LCom protocol
+ #fbTeleHandler.stInTcpTypeConfig.connection.comService := "LCOM_TCP_CONNECTION";
+ //FALSE: passive (server), TRUE: active connection establishment (client)
+ #fbTeleHandler.stInTcpTypeConfig.connection.isClient := TRUE;
+ //TRUE: accept requests from all partners, FALSE: only specified partner is allowed in case of server
+ #fbTeleHandler.stInTcpTypeConfig.connection.acceptUnknownPartner := TRUE;
+ //local port number (possible values: 1...49151; caution: some may be reserved for internal use; recommended values: 2000...5000)
+ #fbTeleHandler.stInTcpTypeConfig.connection.localPort := 4711;
+ //partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 4711;
+
+ //partner IP address xxx.xxx.xxx.xxx = [1].[2].[3].[4], use only in case of client or specified partner
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[1] := 192;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[2] := 168;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[3] := 3;
+ #fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[4] := 245;
+
+ #fbTeleHandler.stInTcpTypeConfig.connection.connectType := "LCOM_CON_TYPE_IPV4";
+
+ // Telegramdefinition
+ #fbTeleHandler.stInTelegramDefinition.sStartMarker := '$02';
+ #fbTeleHandler.stInTelegramDefinition.sEndMarker := '$03';
+ #fbTeleHandler.stInTelegramDefinition.sStartMarkerSend := '$02';
+ #fbTeleHandler.stInTelegramDefinition.sEndMarkerSend := '$03';
+ #fbTeleHandler.stInTelegramDefinition.bSeparatorByte := '$1D'; //',';
+ #fbTeleHandler.stInTelegramDefinition.nLength := 0;
+ #fbTeleHandler.stInTelegramDefinition.nTelegramIDDataField := 0;
+ #fbTeleHandler.stInTelegramDefinition.xTelegramIDIsNumber := FALSE;
+
+ #fbTeleHandler(xInReset := #xReset,
+ xInSendTele := true,
+ xInOutSendTele := #xSendTele,
+ stInTelegramSend := #stTelegramToSend,
+ fbInOutSendFIFO:= #fbInOutSendFIFO,
+ arFifoSendBuffer:=#arFifoSendBuffer);
+ END_REGION
+
+ REGION Reset SequenceNumber
+ #rTrigConnectionActive(CLK:=#fbTeleHandler.xOutConnectionActive);
+
+ IF #rTrigConnectionActive.Q THEN
+ "DB_CommunciationParametersLogger".nSeqNum := 0;
+ END_IF;
+ END_REGION
+
+ REGION Send Heartbeat
+ (* IF #fbTeleHandler.xOutConnectionActive THEN
+ #xSendHeartbeat := TRUE;
+
+ IF #tOnHeartbeat.Q THEN
+ #xSendHeartbeat := FALSE;
+ "FC_Send_HB"(sInPLCID := "cPLCID",
+ FIFO := "DB_LGF_FIFO_CommLogger",
+ BUFFER := "DB_Buffer_CommunicationLogger".BUFFER,
+ nInOutSequenceNumber:="DB_CommunciationParametersLogger".nSeqNum);
+ END_IF;
+ ELSE
+ #xSendHeartbeat := FALSE;
+ END_IF;
+
+ #tOnHeartbeat(IN := #xSendHeartbeat,
+ PT := t#15s); *)
+ END_REGION
+
+ REGION Empfangen
+ //Wird nicht benötigt
+ CASE #nState OF
+ 0: // Waiting
+ //New Telegram
+ IF #fbTeleHandler.xOutTelegramAvailable THEN
+ #fbTeleHandler.xInGetFirst := TRUE;
+ #nState := 100;
+ END_IF;
+ 100: // Get new Telegram
+ #stNewTelegram := #fbTeleHandler.stOutNewTelegram;
+ #fbTeleHandler.xInGetFirst := FALSE;
+ #nState := 200;
+ 200: //Analyze Telegram
+ #stTeleGOHDRespM.stHeader.sPlcId := #stNewTelegram.arDataString[1];
+ #stTeleGOHDRespM.stHeader.sSeqNum := #stNewTelegram.arDataString[2];
+ #stTeleGOHDRespM.stHeader.sMessageType := #stNewTelegram.arDataString[3];
+
+ IF #stTeleGOHDRespM.stHeader.sMessageType = 'GOHDRespM' THEN
+
+ Strg_TO_Chars(Strg := #stNewTelegram.arDataString[4],
+ pChars := 0,
+ Cnt => #cnt,
+ Chars := #arPayloadHelp);
+
+ #typeElement[0].type := 2;
+ #typeElement[0].key := 'DecisionPoint';
+ #typeElement[1].type := 3;
+ #typeElement[1].key := 'GIN';
+ #typeElement[2].type := 2;
+ #typeElement[2].key := 'Barcode';
+ #typeElement[3].type := 1;
+ #typeElement[3].key := 'Actions';
+
+ #xStart := TRUE;
+
+ IF #xDone THEN
+ #xStart := FALSE;
+
+ #stTeleGOHDRespM.stPayload.sDecisionPoint := #typeElement[0].value;
+
+ STRG_VAL(IN := #typeElement[1].value,
+ FORMAT := 0,
+ P := 1,
+ OUT => #stTeleGOHDRespM.stPayload.nGin);
+
+ STRG_VAL(IN := #typeElement[2].value,
+ FORMAT := 0,
+ P := 1,
+ OUT => #stTeleGOHDRespM.stPayload.nBarcode);
+
+ #stTeleGOHDRespM.stPayload.arActions[0] := #typeElement[4].value;
+ #stTeleGOHDRespM.stPayload.arActions[1] := #typeElement[5].value;
+ #stTeleGOHDRespM.stPayload.arActions[2] := #typeElement[6].value;
+ #stTeleGOHDRespM.stPayload.arActions[3] := #typeElement[7].value;
+ #stTeleGOHDRespM.stPayload.arActions[4] := #typeElement[8].value;
+
+ (* IF #stTeleGOHDRespM.stPayload.sDecisionPoint = 'GOH.Rec.01' THEN
+ IF "DB_JamArea0102".stJam0102_4.arCarrier[1].nBarcode = #stTeleGOHDRespM.stPayload.nBarcode THEN
+ IF #stTeleGOHDRespM.stPayload.arActions[0] = '1' THEN
+ "DB_JamArea0102".stJam0102_4.arCarrier[1].nDestination := "cDestInboundOut";
+ ELSIF #stTeleGOHDRespM.stPayload.arActions[0] = '-1' THEN
+ "DB_JamArea0102".stJam0102_4.arCarrier[1].nDestination := "cDestClearing";
+ END_IF;
+ END_IF;
+ END_IF; *)
+
+ #xDone := FALSE;
+
+
+
+
+ (* REGION Send ACK
+ "FC_TeleClear"(#stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 1,
+ sData := '4711',
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 2,
+ sData := #stNewTelegram.arDataString[2],
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 3,
+ sData := 'ACK',
+ stInOutTelegram := #stTelegramToSend);
+
+ #xRetVal := "FC_TeleSetData"(nDataField := 4,
+ sData := '123',
+ stInOutTelegram := #stTelegramToSend);
+ #xSendTele := TRUE;
+ END_REGION *)
+
+ #nState := 0;
+ END_IF;
+
+ ELSE
+ #nState := 0;
+ END_IF;
+ END_CASE;
+ END_REGION
+
+ REGION LStream
+ #LStream_JsonDeserializer_Instance(execute := #xStart,
+ tree := #typeElement,
+ raw := #arPayloadHelp);
+
+ IF #LStream_JsonDeserializer_Instance.done THEN
+ #xDone := TRUE;
+ END_IF;
+ END_REGION
+
+
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/FB_CommunicationLogger_DB.xml b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/FB_CommunicationLogger_DB.xml
new file mode 100644
index 0000000..f64a224
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/900_Communications/TCP-Logger/FB_CommunicationLogger_DB.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+ FB_CommunicationLogger
+ FB
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ FB_CommunicationLogger_DB
+
+ 94
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/960_EventLogging/FB_EventLog_StepChange.scl b/=A01+UH04-KF00/Programmbausteine/960_EventLogging/FB_EventLog_StepChange.scl
new file mode 100644
index 0000000..7bbba93
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/960_EventLogging/FB_EventLog_StepChange.scl
@@ -0,0 +1,55 @@
+FUNCTION_BLOCK "FB_EventLog_StepChange"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ xInTrigger : Bool;
+ stInEventStepChangeInfo : "stEventStepChange";
+ END_VAR
+
+ VAR
+ fbPaEventLogStepChange {InstructionName := 'Program_Alarm'; LibVersion := '1.0'} : Program_Alarm;
+ wStatus { S7_SetPoint := 'True'} : Word;
+ sLogMessage : String;
+ sDelimiter : String[1] := ',';
+ sFunction : String[15];
+ xTriggerFlag : Bool;
+ END_VAR
+
+ VAR_TEMP
+ xError : Bool;
+ tRunProgramAlarm : Bool;
+ END_VAR
+
+
+BEGIN
+ REGION Call: Program Alarm
+ IF #xTriggerFlag XOR #xInTrigger THEN
+
+ REGION Meldetext
+ #sDelimiter := ';';
+ #sFunction := 'Schrittwechsel';
+ #sLogMessage := CONCAT_STRING(IN1 := "FC_DateAsString"(),
+ IN2 := #sDelimiter,
+ IN3 := "FC_TimeAsString"(),
+ IN4 := #sDelimiter,
+ IN5 := #sFunction,
+ IN6 := #sDelimiter,
+ IN7 := 'Alt:',
+ IN8 := DELETE(IN := INT_TO_STRING(#stInEventStepChangeInfo.nStepLast), P := 1, L := 1),
+ IN9 := #sDelimiter,
+ IN10 := 'Neu:',
+ IN11 := DELETE(IN := INT_TO_STRING(#stInEventStepChangeInfo.nStep), P := 1, L := 1));
+ END_REGION
+
+ #fbPaEventLogStepChange(SIG := #xInTrigger,
+ SD_1 := #sLogMessage,
+ Status => #wStatus,
+ Error => #xError);
+ END_IF;
+ END_REGION
+
+ REGION Flanken
+ #xTriggerFlag := #xInTrigger;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Interface_HMI.xml b/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Interface_HMI.xml
new file mode 100644
index 0000000..8e823d2
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Interface_HMI.xml
@@ -0,0 +1,1961 @@
+
+
+
+
+
+
+
+
+
+
+ Jams
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Jam List
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ UH04
+
+
+
+
+ UZ0409
+
+
+
+
+ Extern 1
+
+
+
+
+ Extern 2
+
+
+
+
+ frei
+
+
+
+
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO400.Var1'
+
+
+ 'MA0070'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO401.Var1'
+
+
+ 'MA0071'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO403.Var1'
+
+
+ 'MA0073'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep1Switch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4100'
+
+
+ 'TRO405'
+
+
+ '192.168.4.100'
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4101'
+
+
+ 'TRO406'
+
+
+ '192.168.4.101'
+
+
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4102'
+
+
+ 'TRO407'
+
+
+ '192.168.4.102'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep1Switch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO408.Var1'
+
+
+ 'MA0061'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4104'
+
+
+ 'TRO410'
+
+
+ '192.168.4.110'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep1Switch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO411.Var1'
+
+
+ 'MA0063'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4106'
+
+
+ 'TRO413'
+
+
+ '192.168.4.106'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep1Switch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO414.Var1'
+
+
+ 'MA0065'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO418.Var1'
+
+
+ 'MA0074'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO420.Var1'
+
+
+ 'MA0072'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4103'
+
+
+ 'TRO421'
+
+
+ '192.168.4.103'
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO421.Var1'
+
+
+ 'MA0062'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4105'
+
+
+ 'TRO422'
+
+
+ '192.168.4.105'
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO422.Var1'
+
+
+ 'MA0064'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ Vario
+
+
+
+
+
+
+
+
+
+
+
+
+ 'BX4107'
+
+
+ 'TRO423'
+
+
+ '192.168.4.107'
+
+
+
+
+
+
+
+
+
+
+
+ 'TRO423.Var1'
+
+
+ 'MA0066'
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 1Sep
+
+
+
+
+
+
+
+
+ Conveyors
+
+
+
+
+ true
+
+
+
+
+ 'KR-M4003'
+
+
+ 4
+
+
+ 'MA0060'
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ Systemzustand
+
+
+
+ Motorschutz
+
+
+
+ Motorschutz UH02
+
+
+
+
+
+ Phasenüberwachung
+
+
+
+ Phasenüberwachung 400V UH02
+
+
+
+
+
+ Sicherungsfall
+
+
+
+ Sicherungsautomat UH02
+
+
+
+
+ true
+
+
+
+
+
+ Druckluft
+
+
+
+
+
+ Hauptschütze
+
+
+
+
+ true
+
+
+ UH07
+
+
+
+
+ true
+
+
+
+
+
+ Brandschutzsteuerung
+
+
+
+ Kein Feueralarm FAS1
+
+
+
+
+ Kein Feueralarm FAS2
+
+
+
+
+ Kein Feueralarm (Normally closed)
+
+
+
+
+ Kein Fehler (Normally closed)
+
+
+
+
+ Tor offen (Normally closed)
+
+
+
+
+
+
+
+
+
+ Externe Signale (z.B. Not-Halt Schnittstelle)
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+ Workstations (Multi Purpose Station)
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+ TCP Verbindungen
+
+
+
+
+
+ Optimized
+ 100
+ DB_Interface_HMI
+
+ 18
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Visu.xml b/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Visu.xml
new file mode 100644
index 0000000..1df369a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Visu.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+ false
+ FB_Visu
+ FB
+
+
+
+
+
+
+ DB_Visu
+
+ 42
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Visu_Jams.xml b/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Visu_Jams.xml
new file mode 100644
index 0000000..a5410b5
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/DB_Visu_Jams.xml
@@ -0,0 +1,199 @@
+
+
+
+
+
+ FB_Visu_Jams
+ FB
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ DB_Visu_Jams
+
+ 63
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu.scl b/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu.scl
new file mode 100644
index 0000000..131ca2a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu.scl
@@ -0,0 +1,70 @@
+FUNCTION_BLOCK "FB_Visu"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_TEMP
+ nIdx : Int;
+ END_VAR
+
+
+BEGIN
+ REGION Konfiguration TRO-Nummern
+ "DB_Interface_HMI".stTRO.TRO400.UDT_Config.sName := 'TRO400';
+ "DB_Interface_HMI".stTRO.TRO401.UDT_Config.sName := 'TRO401';
+ "DB_Interface_HMI".stTRO.TRO402.UDT_Config.sName := 'TRO402';
+ "DB_Interface_HMI".stTRO.TRO403.UDT_Config.sName := 'TRO403';
+ "DB_Interface_HMI".stTRO.TRO404.UDT_Config.sName := 'TRO404';
+ "DB_Interface_HMI".stTRO.TRO405.UDT_Config.sName := 'TRO405';
+ "DB_Interface_HMI".stTRO.TRO406.UDT_Config.sName := 'TRO406';
+ "DB_Interface_HMI".stTRO.TRO407.UDT_Config.sName := 'TRO407';
+ "DB_Interface_HMI".stTRO.TRO408.UDT_Config.sName := 'TRO408';
+ "DB_Interface_HMI".stTRO.TRO409.UDT_Config.sName := 'TRO409';
+ "DB_Interface_HMI".stTRO.TRO410.UDT_Config.sName := 'TRO410';
+ "DB_Interface_HMI".stTRO.TRO411.UDT_Config.sName := 'TRO411';
+ "DB_Interface_HMI".stTRO.TRO412.UDT_Config.sName := 'TRO412';
+ "DB_Interface_HMI".stTRO.TRO413.UDT_Config.sName := 'TRO413';
+ "DB_Interface_HMI".stTRO.TRO414.UDT_Config.sName := 'TRO414';
+ "DB_Interface_HMI".stTRO.TRO415.UDT_Config.sName := 'TRO415';
+ "DB_Interface_HMI".stTRO.TRO416.UDT_Config.sName := 'TRO416';
+ "DB_Interface_HMI".stTRO.TRO417.UDT_Config.sName := 'TRO417';
+ "DB_Interface_HMI".stTRO.TRO418.UDT_Config.sName := 'TRO418';
+ "DB_Interface_HMI".stTRO.TRO419.UDT_Config.sName := 'TRO419';
+ "DB_Interface_HMI".stTRO.TRO420.UDT_Config.sName := 'TRO420';
+ "DB_Interface_HMI".stTRO.TRO421.UDT_Config.sName := 'TRO421';
+ "DB_Interface_HMI".stTRO.TRO422.UDT_Config.sName := 'TRO422';
+ "DB_Interface_HMI".stTRO.TRO423.UDT_Config.sName := 'TRO423';
+ "DB_Interface_HMI".stTRO.TRO424.UDT_Config.sName := 'TRO424';
+ END_REGION
+
+ REGION Group-Error Schaltschränke
+ REGION UH04
+ "DB_Interface_HMI".stSystem.stGroupError.xUH04 :=
+ "DB_Interface_HMI".arEstops[0].xEStopActive OR
+ NOT "DB_Interface_HMI".stSystem.stFuse.UH04_400V.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stMainContactor.UH04.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stMotorProtection.UH04.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stPhase.UH04_400V.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stPressure.UH04.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFAS1.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFAS2.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stFireControl.FPCOpened.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stFireControl.NoFault.xSigOk OR
+ NOT "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFPG.xSigOk;
+ END_REGION
+ END_REGION
+
+ REGION Sammelnothalt
+ "DB_Interface_HMI".stSystem.stGroupError.UDT_Panel_EmergencyStopCollected.xEStopActive :=
+ "DB_Interface_HMI".arEstops[0].xEStopActive OR
+ "DB_Interface_HMI".arEstops[1].xEStopActive OR
+ "DB_Interface_HMI".arEstops[2].xEStopActive OR
+ "DB_Interface_HMI".arEstops[3].xEStopActive OR
+ "DB_Interface_HMI".arEstops[4].xEStopActive;
+ END_REGION
+
+ REGION Workstations
+ "DB_Interface_HMI".stWorkStations.Workstation1 := "DB_Prozessdaten".stWorkStations.stMPS1;
+ "DB_Interface_HMI".stWorkStations.Workstation2 := "DB_Prozessdaten".stWorkStations.stMPS2;
+ "DB_Interface_HMI".stWorkStations.Workstation3 := "DB_Prozessdaten".stWorkStations.stMPS3;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu_Jam.scl b/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu_Jam.scl
new file mode 100644
index 0000000..4155ed0
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu_Jam.scl
@@ -0,0 +1,199 @@
+FUNCTION_BLOCK "FB_Visu_Jam"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ arInOutJam : Array[*] of "stCarrier"; // Jam Daten
+ stInOutHMIJam : "UDT_Visu_Jam_List"; // Jam Daten an HMI und CarMove
+ stInOutHMIData : "UDT_HMI_JamData"; // Jam Daten HMI Schnittstelle
+ END_VAR
+
+ VAR
+ xReInit : Bool; // reinit
+ nUpperBound : Int;
+ END_VAR
+
+ VAR_TEMP
+ nIdx : Int;
+ nIdxMerker : Int;
+ END_VAR
+
+
+BEGIN
+ // Hier werden die Carrierlisten für die Visu erstellt
+ // Auf Knopfdruck am HMI werden Aktionen durchgeführt, um die Liste zu scrollen
+ // Aktuell werden immer 10 Carrier gleichzeitig angezeigt
+
+ #stInOutHMIJam.#upperBound := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJam, DIM := 1));
+ #nUpperBound := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJam, DIM := 1));
+ REGION Jam Daten Liste
+ // Beim ersten Aufruf nach reinit ausführen, damit Daten drinstehen
+ IF NOT #xReInit THEN
+ #stInOutHMIJam.nIndex := 1;
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+ #xReInit := TRUE;
+ END_IF;
+
+ // Wenn nichts an der Liste gemacht wird, Daten nur aktualisieren
+ IF NOT #stInOutHMIJam.#DecOne AND NOT #stInOutHMIJam.#DecFive AND NOT #stInOutHMIJam.#IncOne AND NOT #stInOutHMIJam.#IncFive AND NOT #stInOutHMIJam.#ScrollEnd AND NOT #stInOutHMIJam.#ScrollStart THEN
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ // Liste um eins nach oben bewegen
+ IF #stInOutHMIJam.#DecOne THEN
+ #stInOutHMIJam.#nIndex -= 1;
+ IF #stInOutHMIJam.#nIndex < 1 THEN
+ #stInOutHMIJam.#nIndex := 1;
+ END_IF;
+
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+
+
+
+ #stInOutHMIJam.#DecOne := FALSE;
+ END_IF;
+
+ // Liste um fünf nach oben bewegen
+ IF #stInOutHMIJam.#DecFive THEN
+ #stInOutHMIJam.#nIndex -= 5;
+ IF #stInOutHMIJam.#nIndex < 1 THEN
+ #stInOutHMIJam.#nIndex := 1;
+ END_IF;
+
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+ #stInOutHMIJam.#DecFive := FALSE;
+ END_IF;
+
+ // Liste um eins nach unten bewegen
+ IF #stInOutHMIJam.#IncOne THEN
+ #stInOutHMIJam.#nIndex += 1;
+ IF #stInOutHMIJam.#nIndex > #stInOutHMIJam.#upperBound - 9 THEN
+ #stInOutHMIJam.#nIndex := #stInOutHMIJam.#upperBound - 9;
+ IF #stInOutHMIJam.nIndex <= 0 THEN
+ #stInOutHMIJam.nIndex := 1;
+ END_IF;
+ END_IF;
+
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+ #stInOutHMIJam.#IncOne := FALSE;
+ END_IF;
+
+ // Liste um fünf nach unten bewegen
+ IF #stInOutHMIJam.#IncFive THEN
+ #stInOutHMIJam.#nIndex += 5;
+ IF #stInOutHMIJam.#nIndex > #stInOutHMIJam.#upperBound - 9 THEN
+ #stInOutHMIJam.#nIndex := #stInOutHMIJam.#upperBound - 9;
+ IF #stInOutHMIJam.nIndex < 0 THEN
+ #stInOutHMIJam.nIndex := 1;
+ END_IF;
+ END_IF;
+
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+ #stInOutHMIJam.#IncFive := FALSE;
+ END_IF;
+
+ // Zum Listenanfang springen
+ IF #stInOutHMIJam.#ScrollStart THEN
+ #stInOutHMIJam.#nIndex := 1;
+
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+
+ #stInOutHMIJam.#ScrollStart := FALSE;
+ END_IF;
+ // Zum Listenende springen
+ IF #stInOutHMIJam.#ScrollEnd THEN
+ #stInOutHMIJam.#nIndex := #stInOutHMIJam.#upperBound - 9;
+ IF #stInOutHMIJam.nIndex < 0 THEN
+ #stInOutHMIJam.nIndex := 1;
+ END_IF;
+
+ #nIdxMerker := #stInOutHMIJam.nIndex;
+
+ FOR #nIdx := 1 TO 10 DO
+ #stInOutHMIJam.arJamList[#nIdx - 1] := #arInOutJam[#nIdxMerker];
+ #nIdxMerker += 1;
+ IF #nIdx >= #nUpperBound OR #nIdxMerker > #nUpperBound THEN
+ EXIT;
+ END_IF;
+ END_FOR;
+
+ #stInOutHMIJam.#ScrollEnd := FALSE;
+ END_IF;
+ END_REGION
+
+ REGION FC_CAR_MOVE
+ // "FC_CARR_MOVE"(nInCommand := #stHMIJam.stCarMove.nCommand,
+ // nInJamNr := #nInJamNr,//braucht nicht von HMI zu kommen - #stHMIJam.stCarMove.nJamNr,
+ // nInTarget := #stHMIJam.stCarMove.nTarget,
+ // xInStart := #stHMIJam.stCarMove.xStart,
+ // xOutError => #stHMIJam.stCarMove.xError);
+
+ // #stInOutHMIJam.stCarMove.xStart := FALSE;
+ "FC_CarrierManipulator"(stInOutHMIJamData:= #stInOutHMIData,
+ stInOutHMIJamList:= #stInOutHMIJam,
+ arInOutJam:= #arInOutJam,
+ arInOutHyperJam:= "DB_HyperJam".stHyperJam.arCarrier);
+
+ #stInOutHMIJam.stCarMove.xStart := FALSE;
+ END_REGION
+
+ REGION HMI
+ IF #stInOutHMIData.stStatus.bByte.%X7 THEN //%X7: Manuelle Zielvergabe aktiviert
+ #arInOutJam[1].nDestination := #stInOutHMIData.stJamConfig.nManualDest; //Sorgt dafür, dass Carrier ein festes Ziel bekommen
+ END_IF;
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu_Jams.scl b/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu_Jams.scl
new file mode 100644
index 0000000..e56dcec
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/FB_Visu_Jams.scl
@@ -0,0 +1,364 @@
+FUNCTION_BLOCK "FB_Visu_Jams"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR
+ fbJam4000_1 { S7_SetPoint := 'False'} : "FB_Visu_Jam";
+ fbJam4000_2 { S7_SetPoint := 'False'} : "FB_Visu_Jam";
+ fbJam4001_1 : "FB_Visu_Jam";
+ fbJam4001_2 : "FB_Visu_Jam";
+ fbJam4002_1 : "FB_Visu_Jam";
+ fbJam4002_2 : "FB_Visu_Jam";
+ fbJam4003_1 : "FB_Visu_Jam";
+ fbJam4003_2 : "FB_Visu_Jam";
+ fbJam4003_3 : "FB_Visu_Jam";
+ fbJam4003_4 : "FB_Visu_Jam";
+ fbJam4003_5 : "FB_Visu_Jam";
+ fbJam4003_6 : "FB_Visu_Jam";
+ fbJam4003_7 : "FB_Visu_Jam";
+ fbJam4003_8 : "FB_Visu_Jam";
+ fbJam4004_1 : "FB_Visu_Jam";
+ fbJam4004_2 : "FB_Visu_Jam";
+ fbJam4005_1 : "FB_Visu_Jam";
+ fbJam4006_1 : "FB_Visu_Jam";
+ fbJam4006_2 : "FB_Visu_Jam";
+ fbJam4007_1 : "FB_Visu_Jam";
+ fbJam4008_1 : "FB_Visu_Jam";
+ fbJam4008_2 : "FB_Visu_Jam";
+ fbJam4009_1 : "FB_Visu_Jam";
+ fbJam4010_1 : "FB_Visu_Jam";
+ fbJam4010_2 : "FB_Visu_Jam";
+ fbJam4011_1 : "FB_Visu_Jam";
+ fbJam4011_2 : "FB_Visu_Jam";
+ fbJam4404_1 : "FB_Visu_Jam";
+ END_VAR
+
+ VAR_TEMP
+ idx : USInt;
+ END_VAR
+
+
+BEGIN
+ REGION Visu Jam Aufrufe
+
+ REGION Jam 4000
+ #fbJam4000_1(arInOutJam := "DB_JamArea4000".stJam4000_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4000_1,
+ stInOutHMIData:= "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4000.stJam4000_1);
+ END_REGION
+
+ REGION Jam 4001
+ #fbJam4001_1(arInOutJam := "DB_JamArea4001".stJam4001_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4001_1,
+ stInOutHMIData:= "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_1);
+
+ #fbJam4001_2(arInOutJam := "DB_JamArea4001".stJam4001_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4001_2,
+ stInOutHMIData:= "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_2);
+ END_REGION
+
+ REGION Jam 4002
+ #fbJam4002_1(arInOutJam := "DB_JamArea4002".stJam4002_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4002_1,
+ stInOutHMIData:= "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_1);
+
+ #fbJam4002_2(arInOutJam := "DB_JamArea4002".stJam4002_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4002_2,
+ stInOutHMIData:= "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_2);
+ END_REGION
+
+ REGION Jam 4003
+ #fbJam4003_1(arInOutJam := "DB_JamArea4003".stJam4003_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_1);
+
+ #fbJam4003_2(
+ arInOutJam := "DB_JamArea4003".stJam4003_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_2,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_2);
+
+ #fbJam4003_3(
+ arInOutJam := "DB_JamArea4003".stJam4003_3.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_3,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_3);
+
+ #fbJam4003_4(
+ arInOutJam := "DB_JamArea4003".stJam4003_4.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_4,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_4);
+
+ #fbJam4003_5(
+ arInOutJam := "DB_JamArea4003".stJam4003_5.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_5,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_5);
+
+ #fbJam4003_6(arInOutJam := "DB_JamArea4003".stJam4003_6.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_6,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_6);
+
+ #fbJam4003_7(arInOutJam := "DB_JamArea4003".stJam4003_7.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_7,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_7);
+
+ #fbJam4003_8(arInOutJam := "DB_JamArea4003".stJam4003_8.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4003_8,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_8);
+ END_REGION
+
+ REGION Jam 4004
+ #fbJam4004_1(
+ arInOutJam := "DB_JamArea4004".stJam4004_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4004_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_1);
+
+ #fbJam4004_2(
+ arInOutJam := "DB_JamArea4004".stJam4004_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4004_2,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_2);
+ END_REGION
+
+ REGION Jam 4005
+ #fbJam4005_1(
+ arInOutJam := "DB_JamArea4005".stJam4005_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4005_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4005.stJam4005_1);
+
+ END_REGION
+
+ REGION Jam 4006
+ #"fbJam4006_1"(
+ arInOutJam := "DB_JamArea4006".stJam4006_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4006_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_1);
+
+ #"fbJam4006_2"(
+ arInOutJam := "DB_JamArea4006".stJam4006_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4006_2,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_2);
+ END_REGION
+
+ REGION Jam 4007
+ #"fbJam4007_1"(
+ arInOutJam := "DB_JamArea4007".stJam4007_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4007_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4007.stJam4007_1);
+ END_REGION
+
+ REGION Jam 4008
+ #"fbJam4008_1"(
+ arInOutJam := "DB_JamArea4008".stJam4008_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4008_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_1);
+
+ #"fbJam4008_2"(
+ arInOutJam := "DB_JamArea4008".stJam4008_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4008_2,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_2);
+ END_REGION
+
+ REGION Jam 4009
+ #"fbJam4009_1"(
+ arInOutJam := "DB_JamArea4009".stJam4009_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4009_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4009.stJam4009_1);
+ END_REGION
+
+ REGION Jam 4010
+ #"fbJam4010_1"(
+ arInOutJam := "DB_JamArea4010".stJam4010_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4010_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_1);
+
+ #"fbJam4010_2"(
+ arInOutJam := "DB_JamArea4010".stJam4010_2.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4010_2,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_2);
+ END_REGION
+
+ REGION Jam 4011
+
+ #"fbJam4011_1"(
+ arInOutJam := "DB_JamArea4011".stJam4011_1.arCarrier,
+ stInOutHMIJam := "DB_Interface_HMI".stJamsAndStorage.stJamLists.stJam.stJam4011_1,
+ stInOutHMIData := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4011.stJam4011_1);
+
+ END_REGION
+
+
+ (* REGION Jam 4404
+
+ #"fbJam4404_1"(
+ arInOutJam := "DB_JamArea4404".stJam4404_1.arCarrier,
+ nInJamCount := "DB_JamArea4404".stJam4404_1.stData.Status.nCount);
+
+ END_REGION *)
+ END_REGION
+
+ REGION Jams
+ REGION Status
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4000.stJam4000_1.stStatus := "DB_JamArea4000"."stJam4000_1".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_1.stStatus := "DB_JamArea4001"."stJam4001_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_2.stStatus := "DB_JamArea4001"."stJam4001_2".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_1.stStatus := "DB_JamArea4002"."stJam4002_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_2.stStatus := "DB_JamArea4002"."stJam4002_2".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_1.stStatus := "DB_JamArea4003"."stJam4003_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_2.stStatus := "DB_JamArea4003"."stJam4003_2".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_3.stStatus := "DB_JamArea4003".stJam4003_3.stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_4.stStatus := "DB_JamArea4003".stJam4003_4.stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_5.stStatus := "DB_JamArea4003".stJam4003_5.stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_6.stStatus := "DB_JamArea4003"."stJam4003_6".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_7.stStatus := "DB_JamArea4003"."stJam4003_7".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_8.stStatus := "DB_JamArea4003"."stJam4003_8".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_1.stStatus := "DB_JamArea4004"."stJam4004_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_2.stStatus := "DB_JamArea4004"."stJam4004_2".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4005.stJam4005_1.stStatus := "DB_JamArea4005"."stJam4005_1".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_1.stStatus := "DB_JamArea4006"."stJam4006_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_2.stStatus := "DB_JamArea4006"."stJam4006_2".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4007.stJam4007_1.stStatus := "DB_JamArea4007"."stJam4007_1".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_1.stStatus := "DB_JamArea4008"."stJam4008_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_2.stStatus := "DB_JamArea4008"."stJam4008_2".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4009.stJam4009_1.stStatus := "DB_JamArea4009"."stJam4009_1".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_1.stStatus := "DB_JamArea4010"."stJam4010_1".stData.Status;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_2.stStatus := "DB_JamArea4010"."stJam4010_2".stData.Status;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4011.stJam4011_1.stStatus := "DB_JamArea4011"."stJam4011_1".stData.Status;
+
+ END_REGION
+
+ REGION Capacity
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4000.stJam4000_1.stJamConfig.nCapacityPLC := "DB_JamArea4000".stJam4000_1.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_1.stJamConfig.nCapacityPLC := "DB_JamArea4001".stJam4001_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_2.stJamConfig.nCapacityPLC := "DB_JamArea4001".stJam4001_2.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_1.stJamConfig.nCapacityPLC := "DB_JamArea4002".stJam4002_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_2.stJamConfig.nCapacityPLC := "DB_JamArea4002".stJam4002_2.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_1.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_2.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_2.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_3.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_3.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_4.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_4.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_5.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_5.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_6.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_6.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_7.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_7.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_8.stJamConfig.nCapacityPLC := "DB_JamArea4003".stJam4003_8.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_1.stJamConfig.nCapacityPLC := "DB_JamArea4004".stJam4004_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_2.stJamConfig.nCapacityPLC := "DB_JamArea4004".stJam4004_2.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4005.stJam4005_1.stJamConfig.nCapacityPLC := "DB_JamArea4005".stJam4005_1.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_1.stJamConfig.nCapacityPLC := "DB_JamArea4006".stJam4006_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_2.stJamConfig.nCapacityPLC := "DB_JamArea4006".stJam4006_2.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4007.stJam4007_1.stJamConfig.nCapacityPLC := "DB_JamArea4007".stJam4007_1.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_1.stJamConfig.nCapacityPLC := "DB_JamArea4008".stJam4008_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_2.stJamConfig.nCapacityPLC := "DB_JamArea4008".stJam4008_2.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4009.stJam4009_1.stJamConfig.nCapacityPLC := "DB_JamArea4009".stJam4009_1.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_1.stJamConfig.nCapacityPLC := "DB_JamArea4010".stJam4010_1.stData.Config.nCapacitySet;
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_2.stJamConfig.nCapacityPLC := "DB_JamArea4010".stJam4010_2.stData.Config.nCapacitySet;
+
+ "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4011.stJam4011_1.stJamConfig.nCapacityPLC := "DB_JamArea4011".stJam4011_1.stData.Config.nCapacitySet;
+ END_REGION
+
+
+ REGION Einfahr/Ausfahrt sperren, Manuelle Destination
+ "DB_JamArea4000".stJam4000_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4000.stJam4000_1.stJamConfig.xLockEntry;
+ "DB_JamArea4000".stJam4000_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4000.stJam4000_1.stJamConfig.xLockExit;
+ "DB_JamArea4000".stJam4000_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4000.stJam4000_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4001".stJam4001_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_1.stJamConfig.xLockEntry;
+ "DB_JamArea4001".stJam4001_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_1.stJamConfig.xLockExit;
+ "DB_JamArea4001".stJam4001_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4001".stJam4001_2.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_2.stJamConfig.xLockEntry;
+ "DB_JamArea4001".stJam4001_2.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_2.stJamConfig.xLockExit;
+ "DB_JamArea4001".stJam4001_2.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4001.stJam4001_2.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4002".stJam4002_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_1.stJamConfig.xLockEntry;
+ "DB_JamArea4002".stJam4002_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_1.stJamConfig.xLockExit;
+ "DB_JamArea4002".stJam4002_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4002".stJam4002_2.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_2.stJamConfig.xLockEntry;
+ "DB_JamArea4002".stJam4002_2.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_2.stJamConfig.xLockExit;
+ "DB_JamArea4002".stJam4002_2.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4002.stJam4002_2.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_1.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_1.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_2.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_2.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_2.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_2.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_2.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_2.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_3.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_3.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_3.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_3.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_3.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_3.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_4.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_4.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_4.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_4.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_4.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_4.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_5.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_5.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_5.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_5.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_5.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_5.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_6.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_6.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_6.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_6.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_6.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_6.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_7.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_7.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_7.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_7.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_7.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_7.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4003".stJam4003_8.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_8.stJamConfig.xLockEntry;
+ "DB_JamArea4003".stJam4003_8.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_8.stJamConfig.xLockExit;
+ "DB_JamArea4003".stJam4003_8.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4003.stJam4003_8.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4004".stJam4004_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_1.stJamConfig.xLockEntry;
+ "DB_JamArea4004".stJam4004_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_1.stJamConfig.xLockExit;
+ "DB_JamArea4004".stJam4004_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4004.stJam4004_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4005".stJam4005_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4005.stJam4005_1.stJamConfig.xLockEntry;
+ "DB_JamArea4005".stJam4005_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4005.stJam4005_1.stJamConfig.xLockExit;
+ "DB_JamArea4005".stJam4005_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4005.stJam4005_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4006".stJam4006_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_1.stJamConfig.xLockEntry;
+ "DB_JamArea4006".stJam4006_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_1.stJamConfig.xLockExit;
+ "DB_JamArea4006".stJam4006_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4006.stJam4006_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4007".stJam4007_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4007.stJam4007_1.stJamConfig.xLockEntry;
+ "DB_JamArea4007".stJam4007_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4007.stJam4007_1.stJamConfig.xLockExit;
+ "DB_JamArea4007".stJam4007_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4007.stJam4007_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4008".stJam4008_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_1.stJamConfig.xLockEntry;
+ "DB_JamArea4008".stJam4008_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_1.stJamConfig.xLockExit;
+ "DB_JamArea4008".stJam4008_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4008.stJam4008_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4009".stJam4009_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4009.stJam4009_1.stJamConfig.xLockEntry;
+ "DB_JamArea4009".stJam4009_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4009.stJam4009_1.stJamConfig.xLockExit;
+ "DB_JamArea4009".stJam4009_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4009.stJam4009_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4010".stJam4010_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_1.stJamConfig.xLockExit;
+ "DB_JamArea4010".stJam4010_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_1.stJamConfig.xLockExit;
+ "DB_JamArea4010".stJam4010_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4010.stJam4010_1.stJamConfig.xActivateManualDest;
+
+ "DB_JamArea4011".stJam4011_1.stData.Status.bByte.%X2 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4011.stJam4011_1.stJamConfig.xLockEntry;
+ "DB_JamArea4011".stJam4011_1.stData.Status.bByte.%X3 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4011.stJam4011_1.stJamConfig.xLockExit;
+ "DB_JamArea4011".stJam4011_1.stData.Status.bByte.%X7 := "DB_Interface_HMI".stJamsAndStorage.stJams.stJamArea4011.stJam4011_1.stJamConfig.xActivateManualDest;
+ END_REGION
+ END_REGION
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/970_Visu/FC_CarrierManipulator.scl b/=A01+UH04-KF00/Programmbausteine/970_Visu/FC_CarrierManipulator.scl
new file mode 100644
index 0000000..3dbc0be
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/970_Visu/FC_CarrierManipulator.scl
@@ -0,0 +1,159 @@
+FUNCTION "FC_CarrierManipulator" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_IN_OUT
+ stInOutHMIJamData : "UDT_HMI_JamData"; // Jam Daten HMI
+ stInOutHMIJamList : "UDT_Visu_Jam_List"; // Jam Liste HMI
+ arInOutJam : Array[*] of "stCarrier"; // Jam SPS
+ arInOutHyperJam : Array[*] of "stCarrier";
+ END_VAR
+
+ VAR_TEMP
+ tmpEmptyCarr : "stCarrier";
+ nCounter : DInt;
+ nArrayMax : Int;
+ nIdx : Int;
+ nStatus : Int;
+ xResult : Bool;
+ END_VAR
+
+ VAR CONSTANT
+ cFirstAhead : Int := 1; // Carrier weiterbuchen
+ cLastBack : Int := 2; // Carrier zurückbuchen
+ cSwapFirstLast : Int := 3; // Ersten und letzten Carrier im Jam tauschen
+ cDeleteAll : Int := 4; // Alle Jam Daten löschen (macht Sinn, wenn Jam unklar und man einfach bereinigen will)
+ cDeletePos : Int := 5; // Position, falls bestimmter Carrier gelöscht werden soll (macht Sinn, wenn man Carrier entnimmt)
+ cPutToHyperJam : Int := 6; // Position, falls bestimmter Carrier zum HyperJam soll (macht Sinn, wenn Carrier nicht auffindbar)
+ END_VAR
+
+
+BEGIN
+ REGION Info
+ (*
+ Funktionen
+
+ - Alle carrier daten in einem jam leeren - check
+ - bestimmten carrier löschen - check
+
+ MUBEA bereits gemacht:
+ - Carrier in Hyper-Jam - check
+ - Weiterbuchen
+ - Zurückbuchen
+ - Tauschen (erster und letzter)
+ *)
+ END_REGION
+
+ REGION Array-Grenzen
+ #nArrayMax := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJam, DIM := 1));
+ END_REGION
+
+ REGION Befehl ausführen
+ CASE #stInOutHMIJamList.stCarMove.nCommand OF
+ #cDeleteAll:
+ REGION Jam bereinigen
+ IF #stInOutHMIJamList.stCarMove.xStart THEN
+ IF NOT #arInOutJam[1].bStatus.%X0 OR NOT #stInOutHMIJamData.stStatus.bByte.%X2 OR NOT #stInOutHMIJamData.stStatus.bByte.%X3 THEN
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ RETURN;
+ END_IF;
+
+ FOR #nIdx := 1 TO #nArrayMax DO
+ IF #arInOutJam[#nIdx].bStatus.%X0 THEN
+ #arInOutJam[#nIdx] := #tmpEmptyCarr; // Carrierdaten löschen/überschreiben
+ ELSE
+ EXIT; //fertig, nichts mehr zu tun
+ END_IF;
+ END_FOR;
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ END_IF;
+ END_REGION
+
+ #cDeletePos:
+ REGION Bestimmten Carrier löschen
+ IF #stInOutHMIJamList.stCarMove.xStart THEN
+
+ IF #stInOutHMIJamList.stCarMove.nPosDeleteCarrier < 1 OR #stInOutHMIJamList.stCarMove.nPosDeleteCarrier > #nArrayMax OR NOT #arInOutJam[1].bStatus.%X0 OR NOT #stInOutHMIJamData.stStatus.bByte.%X2 OR NOT #stInOutHMIJamData.stStatus.bByte.%X3 THEN
+ //Wenn Positionsangabe zu klein oder zu groß ist, oder in Jam ist gar kein Carrier online, dann beende
+ #stInOutHMIJamList.stCarMove.nPosDeleteCarrier := 1;
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ RETURN;
+ END_IF;
+
+ //lösche den ausgewählten
+ #arInOutJam[#stInOutHMIJamList.stCarMove.nPosDeleteCarrier] := #tmpEmptyCarr;
+ IF #stInOutHMIJamList.stCarMove.nPosDeleteCarrier < #nArrayMax THEN
+ //Rücke danach auf um Lücke zu beseitigen aber nur wenn es nicht die letzte Stelle war
+ #nStatus := MOVE_BLK_VARIANT(SRC := #arInOutJam,
+ COUNT := INT_TO_UDINT(#nArrayMax - #stInOutHMIJamList.stCarMove.nPosDeleteCarrier),
+ SRC_INDEX := #stInOutHMIJamList.stCarMove.nPosDeleteCarrier,
+ DEST_INDEX := #stInOutHMIJamList.stCarMove.nPosDeleteCarrier - 1,
+ DEST => #arInOutJam);
+ //letztes löschen damit dort nichts doppeltes drinsteht
+ #arInOutJam[#nArrayMax] := #tmpEmptyCarr;
+ END_IF;
+ //fertig, setze Startbefehl zurück und Position auf Default
+ #stInOutHMIJamList.stCarMove.nPosDeleteCarrier := 1;
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ END_IF;
+ END_REGION
+
+ #cPutToHyperJam:
+ REGION Carrier zum Hyper-Jam
+
+ IF #stInOutHMIJamList.stCarMove.xStart THEN
+ IF #stInOutHMIJamList.stCarMove.nPosTransferHj < 1 OR #stInOutHMIJamList.stCarMove.nPosTransferHj > #nArrayMax OR NOT #arInOutJam[1].bStatus.%X0 OR NOT #stInOutHMIJamData.stStatus.bByte.%X2 OR NOT #stInOutHMIJamData.stStatus.bByte.%X3 THEN
+ //Wenn Positionsangabe zu klein oder zu groß ist, oder in Jam ist gar kein Carrier online, dann beende
+ #stInOutHMIJamList.stCarMove.nPosTransferHj := 1;
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ RETURN;
+ END_IF;
+
+ IF #arInOutJam[#stInOutHMIJamList.stCarMove.nPosTransferHj].nBarcode > 2 THEN
+ REGION normale Barcodes
+ //Füge Carrier am Ende des Hyperjams ein nur wenn nicht Dummy oder BadRead, also nur bei normalem Code
+ "FC_TSHR_AddAtEnd"(stInTrolley := #arInOutJam[#stInOutHMIJamList.stCarMove.nPosTransferHj],
+ nOutCounter => #nCounter,
+ xOutResult => #xResult,
+ arTSHR := #arInOutHyperJam);
+ //lösche den ausgewählten
+ #arInOutJam[#stInOutHMIJamList.stCarMove.nPosTransferHj] := #tmpEmptyCarr;
+ IF #stInOutHMIJamList.stCarMove.nPosTransferHj < #nArrayMax THEN
+ //Rücke danach auf um Lücke zu beseitigen aber nur wenn es nicht die letzte Stelle war
+ #nStatus := MOVE_BLK_VARIANT(SRC := #arInOutJam,
+ COUNT := INT_TO_UDINT(#nArrayMax - #stInOutHMIJamList.stCarMove.nPosTransferHj),
+ SRC_INDEX := #stInOutHMIJamList.stCarMove.nPosTransferHj,
+ DEST_INDEX := #stInOutHMIJamList.stCarMove.nPosTransferHj - 1,
+ DEST => #arInOutJam);
+ //letztes löschen damit dort nichts doppeltes drinsteht
+ #arInOutJam[#nArrayMax] := #tmpEmptyCarr;
+ END_IF;
+ //fertig, setze Startbefehl zurück und Position auf Default
+ #stInOutHMIJamList.stCarMove.nPosTransferHj := 1;
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ END_REGION
+ ELSE
+ REGION Dummy oder unbekannt
+ //Falls doch Dummy oder unbekannter Barcode, lösche nur
+ #arInOutJam[#stInOutHMIJamList.stCarMove.nPosTransferHj] := #tmpEmptyCarr;
+ IF #stInOutHMIJamList.stCarMove.nPosTransferHj < #nArrayMax THEN
+ //Rücke danach auf um Lücke zu beseitigen aber nur wenn es nicht die letzte Stelle war
+ #nStatus := MOVE_BLK_VARIANT(SRC := #arInOutJam,
+ COUNT := INT_TO_UDINT(#nArrayMax - #stInOutHMIJamList.stCarMove.nPosTransferHj),
+ SRC_INDEX := #stInOutHMIJamList.stCarMove.nPosTransferHj,
+ DEST_INDEX := #stInOutHMIJamList.stCarMove.nPosTransferHj - 1,
+ DEST => #arInOutJam);
+ //letztes löschen damit dort nichts doppeltes drinsteht
+ #arInOutJam[#nArrayMax] := #tmpEmptyCarr;
+ END_IF;
+ //fertig, setze Startbefehl zurück und Position auf Default
+ #stInOutHMIJamList.stCarMove.nPosTransferHj := 1;
+ #stInOutHMIJamList.stCarMove.xStart := FALSE;
+ END_REGION
+ END_IF;
+ END_IF;
+ END_REGION
+
+ END_CASE;
+ END_REGION
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/999_Safety/DB_InterfaceSafety.xml b/=A01+UH04-KF00/Programmbausteine/999_Safety/DB_InterfaceSafety.xml
new file mode 100644
index 0000000..bf79201
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/999_Safety/DB_InterfaceSafety.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_InterfaceSafety
+
+ 22
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/FC_BARCODE_SEARCH.scl b/=A01+UH04-KF00/Programmbausteine/FC_BARCODE_SEARCH.scl
new file mode 100644
index 0000000..ec0f101
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/FC_BARCODE_SEARCH.scl
@@ -0,0 +1,590 @@
+FUNCTION "FC_BARCODE_SEARCH" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInArea : Int; // Suchort eingrenzen: 0 = alles durchsuchen / xxx00 = nur hier suchen
+ xInActive : Bool; // Flanke für Starten des Abrufes
+ END_VAR
+
+ VAR_OUTPUT
+ xOutNewRetrieve : Bool; // Flanke als Ausgang dass neuer Abruf VOM LAGER stattfindet
+ nOutMissingBarcode : DInt; // Fehlteil
+ xOutError : Bool; // FALSE: Kein Fehler | TRUE: Während der Bearbeitung ist ein Fehler aufgetreten
+ nOutStatus : Int; // Fehlercodes
+ END_VAR
+
+ VAR_IN_OUT
+ InOutTest : Array[*] of "stCarrier"; // Liste mit dem Jambereich des Lagerausgangs
+ InOutStructRetrieve : Struct // Struktur in der Abruf vorgegeben wird
+ nBarcode : DInt;
+ nDestination : USInt;
+ END_STRUCT;
+ InOutLocalized : "SearchResult"; // Ergebnis
+ END_VAR
+
+ VAR_TEMP
+ nBarcode : DInt;
+ nDestination : Int;
+ nIdx1 : USInt;
+ nIdx2 : USInt;
+ nIdx3 : Int;
+ nLine : Int; // Zwischenmerker für Suchergebnis
+ nPos : Int; // Zwischenmerker für Suchergebnis
+ nArrTestMax : Int;
+ xPartFound : Bool; // Zwischenmerker Teil gefunden
+ END_VAR
+
+ VAR CONSTANT
+ ERR_RETRIEVE_INVALID : Int := 3000; // Ungültige Eingaben jeglicher Art
+ ERR_RETRIEVE_EMPTY : Int := 3001; // NIU
+ ERR_RETRIEVE_NOT_FOUND : Int := 3001; // Nicht gefunden
+ ERR_RETRIEVE_MISCERROR : Int := 3003; // NIU
+ "Store2.1.1" : Int := 1;
+ "Store2.1.2" : Int := 2;
+ "Store2.1.3" : Int := 3;
+ "Store2.1.4" : Int := 4;
+ "Store2.2.1" : Int := 5;
+ "Store2.2.2" : Int := 6;
+ "Store2.2.3" : Int := 7;
+ "Store2.2.4" : Int := 8;
+ "Store2.3.1" : Int := 9;
+ "Store2.3.2" : Int := 10;
+ "Store2.3.3" : Int := 11;
+ "Store2.3.4" : Int := 12;
+ END_VAR
+
+
+BEGIN
+ (*
+ ************************************************************************************
+ Sucht in Vorsortierlinie sowie Lager nach dem Teil welches als EXPRESS abgerufen werden soll
+ ************************************************************************************
+ *)
+
+ IF #xInActive THEN
+
+ REGION Array-Größen ermitteln
+ #nArrTestMax := DINT_TO_INT(UPPER_BOUND(ARR := #InOutTest, DIM := 1));
+ END_REGION
+
+ REGION Return Bedingung TO DO
+ IF #InOutStructRetrieve.nDestination < "cDestLvl1B1" OR #InOutStructRetrieve.nDestination > "cDestExit" OR //kein gültiges Ziel
+ (#InOutStructRetrieve.nBarcode / 10000000 <> 2) OR //Wenn hier etwas anderes als 2 rauskommt, dann ist der angeforderte Barcode nicht 8-stellig oder beginnt nicht mit 2 für "MiniTrolley"
+ (((#InOutStructRetrieve.nBarcode / 10) MOD 100) MOD 2 <> 1) //Wenn hier etwas anderes als 1 rauskommt, dann ist die 10er Stelle nicht ungerade
+ THEN
+ #xOutError := TRUE;
+ #nOutStatus := #ERR_RETRIEVE_INVALID;
+ #nOutMissingBarcode := 0;
+ RETURN;//Abruf ungültig
+ ELSE //Wenn Eingaben in Ordnung, dann speichere in Temp
+ #nBarcode := #InOutStructRetrieve.nBarcode;
+ #nDestination := #InOutStructRetrieve.nDestination;
+ END_IF;
+ END_REGION
+
+ REGION Durchsuche TEST
+
+ // FOR #nIdx1 := 1 TO #nArrTestMax DO
+ // IF #nBarcode = #InOutTest[#nIdx1].stLoadData.nProductNo AND
+ // #InOutTest[#nIdx1].stLoadData.nDestinationNo <> INT_TO_USINT(#nTarget) AND
+ // #InOutTest[#nIdx1].stLoadData.nDestinationNo <> "cDestQUALITY" (* AND
+ // #InOutExitArray[#nIdx1].stLoadData.nDestinationNo <> "cDestSEAT" AND
+ // #InOutExitArray[#nIdx1].stLoadData.nDestinationNo <> "cDestREST" *) THEN
+ // // #tempPartFound := TRUE;
+ // REGION Schreibe Daten
+ // "FC_GetBackFcPart"(stInPart := #InOutTest[#nIdx1],
+ // xOutput => "DB_RetrieveSearchResult".xGetBackFc);
+ // #InOutTest[#nIdx1].stLoadData.nDestinationNo := INT_TO_USINT(#nTarget);
+ // #InOutTest[#nIdx1].stLoadData.nJobNo := #nJobNo;
+ // END_REGION
+ // #InOutLocalized.nBarcode := #nBarcode;
+ // #InOutLocalized.Storage.Line := 0;
+ // #InOutLocalized.Storage.Pos := 0;
+ // #InOutLocalized.JamTest := #nIdx1;
+ // #InOutLocalized.205_1 := 0;
+ // #InOutLocalized.205_2 := 0;
+ // // #xOutNewRetrieve := TRUE;
+ // #xOutError := FALSE;
+ // #nOutStatus := 0;
+ // #nOutMissingBarcode[1] := 0;
+ // #nOutMissingBarcode[2] := 0;
+ // RETURN; //Suche unterbrechen wenn Teil gefunden wurde
+ // END_IF;
+ // END_FOR;
+
+ END_REGION
+
+ (* REGION Durchsuche Lager 1.1.1
+ IF #nInArea = 0 OR #nInArea = "cDest11100" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.1.1" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock1" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.1.1".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.1.1".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock1" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.1.1" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.1.1".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.1.1";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION *)
+ (* REGION Durchsuche Lager 1.1.2
+ IF #nInArea = 0 OR #nInArea = "cDest11200" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.1.2" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock1" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.1.2".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.1.2".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock1" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.1.2" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.1.2".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.1.2";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION*)
+ (*REGION Durchsuche Lager 1.1.3
+ IF #nInArea = 0 OR #nInArea = "cDest11300" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.1.3" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock1" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.1.3".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.1.3".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock1" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.1.3" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.1.3".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.1.3";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.1.4
+ IF #nInArea = 0 OR #nInArea = "cDest11400" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.1.4" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock1" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.1.4".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.1.4".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock1" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.1.4" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.1.4".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.1.4";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.2.1
+ IF #nInArea = 0 OR #nInArea = "cDest12100" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.2.1" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock2" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.2.1".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.2.1".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock2" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.2.1" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.2.1".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.2.1";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.2.2
+ IF #nInArea = 0 OR #nInArea = "cDest12200" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.2.2" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock2" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.2.2".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.2.2".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock2" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.2.2" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.2.2".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.2.2";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.2.3
+ IF #nInArea = 0 OR #nInArea = "cDest12300" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.2.3" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock2" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.2.3".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.2.3".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock2" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.2.3" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.2.3".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.2.3";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.2.4
+ IF #nInArea = 0 OR #nInArea = "cDest12400" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.2.4" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock2" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.2.4".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.2.4".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock2" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.2.4" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.2.4".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.2.4";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.3.1
+ IF #nInArea = 0 OR #nInArea = "cDest13100" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.3.1" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock3" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.3.1".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.3.1".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock3" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.3.1" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.3.1".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.3.1";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.3.2
+ IF #nInArea = 0 OR #nInArea = "cDest13200" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.3.2" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock3" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.3.2".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.3.2".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock3" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.3.2" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.3.2".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.3.2";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.3.3
+ IF #nInArea = 0 OR #nInArea = "cDest13300" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.3.3" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock3" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.3.3".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.3.3".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock3" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.3.3" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.3.3".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.3.3";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ RETURN;
+ END_IF;
+ END_REGION
+ END_REGION
+ REGION Durchsuche Lager 1.3.4
+ IF #nInArea = 0 OR #nInArea = "cDest13400" THEN
+ FOR #nIdx1 := 1 TO "cNoLines1.3.4" DO //Lagerlinien
+ FOR #nIdx2 := 1 TO "cNoPositionsBlock3" DO //Positionen pro Linie
+ IF #nBarcode = "DB_Storage1.3.4".arLine[#nIdx1].arCarrier[#nIdx2].nBarcode AND
+ // "DB_Storage2.3.4".arLine[#nIdx1].arCarrier[#nIdx2].nTarget <> INT_TO_USINT(#nTarget) AND
+ (#nPos = 0 OR #nPos > #nIdx2) THEN
+ //***********falls gefunden*********
+ #nLine := #nIdx1;
+ #nPos := #nIdx2;
+ // #tempPartFound := TRUE;
+ EXIT; //Suche unterbrechen wenn Teil gefunden wurde
+ END_IF;
+ IF #nIdx2 = "cNoPositionsBlock3" THEN
+ EXIT; //nach letzter Position -> Schleife beenden
+ END_IF;
+ END_FOR;
+ IF #nIdx1 = "cNoLines1.3.4" THEN
+ EXIT; //nach letzter Linie -> Schleife beenden
+ END_IF;
+ END_FOR;
+ END_IF;
+
+ REGION Schreibe Daten
+ IF #nPos > 0 THEN
+ "DB_Storage1.3.4".arLine[#nLine].arCarrier[#nPos].nDestination := INT_TO_USINT(#nDestination);
+ #InOutLocalized.nBarcode := #nBarcode;
+ #InOutLocalized.Storage.Store := #"Store2.3.4";
+ #InOutLocalized.Storage.Line := #nLine;
+ #InOutLocalized.Storage.Pos := #nPos;
+ #InOutLocalized.JamTest := 0;
+ #xOutNewRetrieve := TRUE;
+ #xOutError := FALSE;
+ #nOutStatus := 0;
+ #nOutMissingBarcode := 0;
+ ELSE
+ #xOutError := TRUE;
+ #nOutStatus := #ERR_RETRIEVE_NOT_FOUND;
+ #nOutMissingBarcode := #nBarcode;
+ END_IF;
+ END_REGION
+ END_REGION*)
+ END_IF;
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/LCom/LCom_Communication.liblink b/=A01+UH04-KF00/Programmbausteine/LCom/LCom_Communication.liblink
new file mode 100644
index 0000000..eb607a2
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/LCom/LCom_Communication.liblink
@@ -0,0 +1,2 @@
+TypeGuid: a43f6dac-4990-428b-8dfa-541ef78c23be
+VersionGuid: a520bb7a-dd16-4e88-8188-4df94fd22f7f
diff --git a/=A01+UH04-KF00/Programmbausteine/LStream/LStream_JsonDeserializer.liblink b/=A01+UH04-KF00/Programmbausteine/LStream/LStream_JsonDeserializer.liblink
new file mode 100644
index 0000000..ebe9bdb
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/LStream/LStream_JsonDeserializer.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 394bf871-31f1-482e-98f1-90a597991a44
+VersionGuid: 30f8b229-5390-4515-8015-9e9a8fae930c
diff --git a/=A01+UH04-KF00/Programmbausteine/LStream/Utilities/LStream_FindStringInByteCharArrayAdv.liblink b/=A01+UH04-KF00/Programmbausteine/LStream/Utilities/LStream_FindStringInByteCharArrayAdv.liblink
new file mode 100644
index 0000000..b28e0b0
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/LStream/Utilities/LStream_FindStringInByteCharArrayAdv.liblink
@@ -0,0 +1,2 @@
+TypeGuid: 55baebfc-df40-4eda-91a7-cb092d016de9
+VersionGuid: 47330ceb-d57e-468c-a486-82f7e135e800
diff --git a/=A01+UH04-KF00/Programmbausteine/OB1.xml b/=A01+UH04-KF00/Programmbausteine/OB1.xml
new file mode 100644
index 0000000..7967b74
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/OB1.xml
@@ -0,0 +1,2285 @@
+
+
+
+
+
+ false
+
+
+
+
+ Initial call of this OB
+ Initial call of this OB
+ Initial call of this OB
+
+
+
+
+ =True, if remanent data are available
+ =True, if remanent data are available
+ =True, if remanent data are available
+
+
+
+
+
+
+ Optimized
+ OB1
+
+ 1
+ FBD
+ ProgramCycle
+ false
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ FALSE
+
+
+
+
+
+ Wird in OB121 auf TRUE gesetzt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Zykluszeit genau ermitteln START
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ "DB_Error".sErrorText.....Reaktion, Meldung etc.
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ Quittieren
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ ''
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ FALSE
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ OB 121 zeigt bei Programmierfehler in DB_Error die Infos an. Infos können hier gelöscht werden.
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Programmierfehler Handling
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Call Sensors
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ PreMain
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ "fbTestMain_DB"();
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Main
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Priority Logic
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Communications
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ AMR Management
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+ REGION Jam füllen
+ IF "DB_Test".xFillJam THEN
+ REGION HyperJam
+ FOR #nIdxHyper := 1 TO "cHyperJam" -1 DO
+ "DB_HyperJam".stHyperJam.arCarrier[#nIdxHyper].nBarcode := 20000015;
+ "DB_HyperJam".stHyperJam.arCarrier[#nIdxHyper].bStatus.%X0 := true;
+ END_FOR;
+ END_REGION
+ (* REGION Conveyor
+ FOR #nIdx2 := 1 TO "cJamConv1_1" -1 DO
+ "DB_JamAreaConv1".stJamConv1_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamAreaConv1".stJamConv1_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJamConv1_2" -1 DO
+ "DB_JamAreaConv1".stJamConv1_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamAreaConv1".stJamConv1_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJamConv1_3" -1 DO
+ "DB_JamAreaConv1".stJamConv1_3.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamAreaConv1".stJamConv1_3.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJamConv1_4" -1 DO
+ "DB_JamAreaConv1".stJamConv1_4.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamAreaConv1".stJamConv1_4.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJamConv2" -1 DO
+ "DB_JamAreaConv2".stJamConv2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamAreaConv2".stJamConv2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ END_REGION
+ REGION Block 1
+ FOR #nIdx2 := 1 TO "cJam1101_1" -1 DO
+ "DB_JamArea1101".stJam1101_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1101".stJam1101_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1101_2" -1 DO
+ "DB_JamArea1101".stJam1101_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1101".stJam1101_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1102_1" -1 DO
+ "DB_JamArea1102".stJam1102_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1102".stJam1102_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1102_2" -1 DO
+ "DB_JamArea1102".stJam1102_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1102".stJam1102_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1102_3" -1 DO
+ "DB_JamArea1102".stJam1102_3.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1102".stJam1102_3.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1102_4" -1 DO
+ "DB_JamArea1102".stJam1102_4.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1102".stJam1102_4.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1102_5" -1 DO
+ "DB_JamArea1102".stJam1102_5.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1102".stJam1102_5.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1103_1" -1 DO
+ "DB_JamArea1103".stJam1103_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1103".stJam1103_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1103_2" -1 DO
+ "DB_JamArea1103".stJam1103_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1103".stJam1103_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1104_1" -1 DO
+ "DB_JamArea1104".stJam1104_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1104".stJam1104_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1104_2" -1 DO
+ "DB_JamArea1104".stJam1104_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1104".stJam1104_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1104_3" -1 DO
+ "DB_JamArea1104".stJam1104_3.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1104".stJam1104_3.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1104_4" -1 DO
+ "DB_JamArea1104".stJam1104_4.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1104".stJam1104_4.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1105_1" - 1 DO
+ "DB_JamArea1105".stJam1105_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1105".stJam1105_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1105_2" -1 DO
+ "DB_JamArea1105".stJam1105_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1105".stJam1105_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1106_1" - 1 DO
+ "DB_JamArea1106".stJam1106_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1106".stJam1106_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1106_2" -1 DO
+ "DB_JamArea1106".stJam1106_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1106".stJam1106_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1107_1" - 1 DO
+ "DB_JamArea1107".stJam1107_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1107".stJam1107_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1107_2" -1 DO
+ "DB_JamArea1107".stJam1107_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1107".stJam1107_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1108_1" - 1 DO
+ "DB_JamArea1108".stJam1108_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1108".stJam1108_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam1108_2" -1 DO
+ "DB_JamArea1108".stJam1108_2.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamArea1108".stJam1108_2.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJamB1Entry_1" -1 DO
+ "DB_JamAreaB1Entry".stJamB1Entry_1.arCarrier[#nIdx2].nBarcode := 20000015;
+ "DB_JamAreaB1Entry".stJamB1Entry_1.arCarrier[#nIdx2].bStatus.%X0 := true;
+ END_FOR;
+ // FOR #nIdx2 := 1 TO "cJamB1ExitLeave" -1 DO
+ // "DB_JamAreaB1ExitLeave".stJamB1ExitLeave.arCarrier[#nIdx2].nBarcode := 20000015;
+ // "DB_JamAreaB1ExitLeave".stJamB1ExitLeave.arCarrier[#nIdx2].bStatus.%X0 := true;
+ // END_FOR;
+ END_REGION *)
+
+
+ END_IF;
+ "DB_Test".xFillJam := FALSE;
+END_REGION
+
+REGION Jam leeren
+ IF "DB_Test".xEmptyJam THEN
+ REGION HyperJam
+ FOR #nIdxHyper := 1 TO "cHyperJam" DO
+ "DB_HyperJam".stHyperJam.arCarrier[#nIdxHyper].nBarcode := 0;
+ "DB_HyperJam".stHyperJam.arCarrier[#nIdxHyper].bStatus.%X0 := false;
+ END_FOR;
+ END_REGION
+ REGION Conveyor
+ // FOR #nIdx2 := 1 TO "cJamConv1_1" DO
+ // "DB_JamAreaConv1".stJamConv1_1.arCarrier[#nIdx2].nBarcode := 0;
+ // "DB_JamAreaConv1".stJamConv1_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ // END_FOR;
+
+ END_REGION
+ REGION Jam Area
+ FOR #nIdx2 := 1 TO "cJam4101_1" DO
+ "DB_JamArea4003".stJam4003_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4101_2" DO
+ "DB_JamArea4003".stJam4003_2.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_2.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4101_3" DO
+ "DB_JamArea4003".stJam4003_3.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_3.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+
+ FOR #nIdx2 := 1 TO "cJam4101_4" DO
+ "DB_JamArea4003".stJam4003_4.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_4.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4101_5" DO
+ "DB_JamArea4003".stJam4003_5.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_5.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4101_6" DO
+ "DB_JamArea4003".stJam4003_6.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_6.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+
+ FOR #nIdx2 := 1 TO "cJam4101_7" DO
+ "DB_JamArea4003".stJam4003_7.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4003".stJam4003_7.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+
+
+ FOR #nIdx2 := 1 TO "cJam4002_1" DO
+ "DB_JamArea4002".stJam4002_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4002".stJam4002_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4002_2" DO
+ "DB_JamArea4002".stJam4002_2.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4002".stJam4002_2.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0403_1" DO
+ "DB_JamArea4011".stJam4011_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4011".stJam4011_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0403_2" DO
+ "DB_JamArea4011".stJam0403_2.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4011".stJam0403_2.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0403.01_1" DO
+ "DB_JamArea4000".stJam4000_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4000".stJam4000_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0403.02_1" DO
+ "DB_JamArea0403.02"."stJam0403.02_1".arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea0403.02"."stJam0403.02_1".arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0402.01_1" DO
+ "DB_JamArea4009".stJam4009_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4009".stJam4009_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0402.02_1" DO
+ "DB_JamArea4010".stJam4010_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4010".stJam4010_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0401.01_1" DO
+ "DB_JamArea4007".stJam4007_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4007".stJam4007_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam0401.02_1" DO
+ "DB_JamArea4008".stJam4008_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4008".stJam4008_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4001_1" DO
+ "DB_JamArea4001".stJam4001_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4001".stJam4001_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4001_2" DO
+ "DB_JamArea4001".stJam4001_2.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4001".stJam4001_2.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4404_1" DO
+ "DB_JamArea4004".stJam4004_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4004".stJam4004_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ FOR #nIdx2 := 1 TO "cJam4404_2" DO
+ "DB_JamArea4004".stJam4404_2.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4004".stJam4404_2.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+
+ FOR #nIdx2 := 1 TO "cJam4503_1" DO
+ "DB_JamArea4006".stJam4006_1.arCarrier[#nIdx2].nBarcode := 0;
+ "DB_JamArea4006".stJam4006_1.arCarrier[#nIdx2].bStatus.%X0 := false;
+ END_FOR;
+ END_REGION
+
+ END_IF;
+ "DB_Test".xEmptyJam := FALSE;
+END_REGION
+
+
+
+ "MA0061" := "DB_IBN".xVario4004;
+
+
+
+ "MA0062" := "DB_IBN".xVario4005;
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ TEST-SCHLEIFEN
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Call Jams
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Visu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Visu
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1000.0
+
+
+
+
+
+
+
+
+
+ in Millisekunden anzeigen
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ Zykluszeit genau ermitteln ENDE
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+ Senden
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IO Device Datenübergabe
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+ *****************************
+FÜR PERFORMANCE MESSUNG:
+20.01.
+1 - 405.1
+2 - 405.1
+3 - 406.1
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sep-Nr. für Auflistung der Messungen
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ 2500
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ReleasedEdge des jeweiligen Seps
+
+
+
+
+
+
+
+
+
+ T#86400s
+
+
+
+
+
+
+
+
+
+
+
+
+ 398
+
+
+
+
+
+
+
+
+
+ gewünschte Messzeit
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sep-Nr. für Auflistung der Messungen
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ 2600
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ReleasedEdge des jeweiligen Seps
+
+
+
+
+
+
+
+
+
+ T#86400s
+
+
+
+
+
+
+
+
+
+
+
+
+ 398
+
+
+
+
+
+
+
+
+
+ gewünschte Messzeit
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sep-Nr. für Auflistung der Messungen
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ 2600
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ReleasedEdge des jeweiligen Seps
+
+
+
+
+
+
+
+
+
+ T#86400s
+
+
+
+
+
+
+
+
+
+
+
+
+ 398
+
+
+
+
+
+
+
+
+
+ gewünschte Messzeit
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sep-Nr. für Auflistung der Messungen
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ 2600
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ReleasedEdge des jeweiligen Seps
+
+
+
+
+
+
+
+
+
+ T#86400s
+
+
+
+
+
+
+
+
+
+
+
+
+ 398
+
+
+
+
+
+
+
+
+
+ gewünschte Messzeit
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sep-Nr. für Auflistung der Messungen
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ 2600
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ReleasedEdge des jeweiligen Seps
+
+
+
+
+
+
+
+
+
+ T#86400s
+
+
+
+
+
+
+
+
+
+
+
+
+ 398
+
+
+
+
+
+
+
+
+
+ gewünschte Messzeit
+
+
+
+ *****************************
+
+
+ SCL
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+ IBN
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+
+
+ cs-CZ
+ "Main Program Sweep (Cycle)"
+
+
+
+
+ de-DE
+ "Main Program Sweep (Cycle)"
+
+
+
+
+ en-US
+ "Main Program Sweep (Cycle)"
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/PROFINET/DB_PROFINET_DEVICE_STATES.xml b/=A01+UH04-KF00/Programmbausteine/PROFINET/DB_PROFINET_DEVICE_STATES.xml
new file mode 100644
index 0000000..1fcfeaa
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/PROFINET/DB_PROFINET_DEVICE_STATES.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ Optimized
+ 100
+ DB_PROFINET_DEVICE_STATES
+
+ 62
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/PROFINET/FC_GET_PROFINET_DEVICE_STATES.scl b/=A01+UH04-KF00/Programmbausteine/PROFINET/FC_GET_PROFINET_DEVICE_STATES.scl
new file mode 100644
index 0000000..e1fcf14
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/PROFINET/FC_GET_PROFINET_DEVICE_STATES.scl
@@ -0,0 +1,27 @@
+FUNCTION "FC_GET_PROFINET_DEVICE_STATES" : Void
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_TEMP
+ nRetValExist : Int;
+ nRetValFaulty : Int;
+ END_VAR
+
+
+BEGIN
+ REGION Device States
+
+ REGION Get MODE Exist
+ #nRetValExist := DeviceStates(LADDR := "Local~PROFINET_IO-System", // IO-System
+ MODE := 4, // vorhanden / nicht vorhanden
+ STATE := "DB_PROFINET_DEVICE_STATES".arPN_DEV_STATE_EXIST); // Status
+ END_REGION
+
+ REGION Get MODE Fault
+ #nRetValFaulty := DeviceStates(LADDR := "Local~PROFINET_IO-System", // IO-System
+ MODE := 2, // Störung
+ STATE := "DB_PROFINET_DEVICE_STATES".arPN_DEV_STATE_FAULTY); // Status
+ END_REGION
+
+ END_REGION
+END_FUNCTION
+
diff --git a/=A01+UH04-KF00/Programmbausteine/Programming error.scl b/=A01+UH04-KF00/Programmbausteine/Programming error.scl
new file mode 100644
index 0000000..0b5d1ec
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/Programming error.scl
@@ -0,0 +1,32 @@
+ORGANIZATION_BLOCK "Programming error"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+
+BEGIN
+ "DB_Error".BlockNr := #BlockNr;
+ "DB_Error".Reaction := #Reaction;
+ "DB_Error".Fault_ID := #Fault_ID;
+ "DB_Error".BlockType := #BlockType;
+ "DB_Error".Area := #Area;
+ "DB_Error".DBNr := #DBNr;
+ "DB_Error".Csg_OBNr := #Csg_OBNr;
+ "DB_Error".Csg_Prio := #Csg_Prio;
+ "DB_Error".Width := #Width;
+ "DB_Error".xErrorActive := TRUE; //Wird am Anfang von OB1 wieder auf FALSE gesetzt
+ CASE #BlockType OF
+ 16#01:
+ //Fehler in OB
+ "DB_Error".sErrorText := CONCAT_STRING(IN1 := 'Programming Error in OB ', IN2 := UINT_TO_STRING(#BlockNr));
+ 16#02:
+ //Fehler in FC
+ "DB_Error".sErrorText := CONCAT_STRING(IN1 := 'Programming Error in FC ', IN2 := UINT_TO_STRING(#BlockNr));
+ 16#03:
+ //Fehler in FB
+ "DB_Error".sErrorText := CONCAT_STRING(IN1 := 'Programming Error in FB ', IN2 := UINT_TO_STRING(#BlockNr));
+ 16#06:
+ //Fehler in DB
+ "DB_Error".sErrorText := CONCAT_STRING(IN1 := 'Programming Error in DB ', IN2 := UINT_TO_STRING(#BlockNr));
+ END_CASE;
+
+END_ORGANIZATION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/SCADA/DB_Status.xml b/=A01+UH04-KF00/Programmbausteine/SCADA/DB_Status.xml
new file mode 100644
index 0000000..10dd3cf
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/SCADA/DB_Status.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Main Cabinet (e.g. on, off, emergency stop…)
+
+
+
+
+ Optimized
+ 100
+ DB_Status
+
+ 66
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/SCADA/FB-OPC_UA_System-Stat.scl b/=A01+UH04-KF00/Programmbausteine/SCADA/FB-OPC_UA_System-Stat.scl
new file mode 100644
index 0000000..4951105
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/SCADA/FB-OPC_UA_System-Stat.scl
@@ -0,0 +1,72 @@
+FUNCTION_BLOCK "FB-OPC_UA_System-Stat"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInSystemStat : Int; // Main State
+ xInFireAlarm : Bool; // Feueralarm
+ xInSafetyStop : Bool; // Not-Halt
+ xInError : Bool; // Störung
+ xInCommunicationError : Bool; // Kommunikationsstörung
+ END_VAR
+
+ VAR_OUTPUT
+ nOutScadaStatus : Int;
+ END_VAR
+
+
+BEGIN
+ //Priority Chain
+ //Emergency
+ //Fault/Restore
+ //Manual
+ //Energy Saving
+ //Cleaning / Warning
+ //Running/Stopped
+
+ IF #xInFireAlarm THEN
+ #nOutScadaStatus := 1;
+ ELSIF #xInSafetyStop THEN
+ #nOutScadaStatus := 3;
+ ELSIF #xInError THEN
+ #nOutScadaStatus := 5;
+ ELSIF #xInCommunicationError THEN
+ #nOutScadaStatus := 23;
+ ELSIF #nInSystemStat = "E_DeviceState.eExecute" THEN
+ #nOutScadaStatus := 19;
+ ELSIF (#nInSystemStat = "E_DeviceState.eStopped") OR (#nInSystemStat = "E_DeviceState.eIdle") THEN
+ #nOutScadaStatus := 17;
+ END_IF;
+
+ (* CASE #nInSystemStat OF
+
+ "E_DeviceState.eStopped":
+ #nOutScadaStatus := 17;
+
+ "E_DeviceState.eIdle":
+ #nOutScadaStatus := 17;
+
+ "E_DeviceState.eExecute":
+ #nOutScadaStatus := 19;
+
+ "E_DeviceState.eHolding":
+ #nOutScadaStatus := 3;
+
+ "E_DeviceState.eHeld":
+ #nOutScadaStatus := 13;
+
+ "E_DeviceState.eSuspended":
+ #nOutScadaStatus := 13;
+
+ "E_DeviceState.eStarting",
+ 120,
+ "E_DeviceState.eUnholding",
+ "E_DeviceState.eUnsuspending",
+ "E_DeviceState.eStopping":
+ #nOutScadaStatus := 7;
+
+ ELSE
+ #nOutScadaStatus := 5;
+
+ END_CASE; *)
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/SCADA/FB-OPC_UA_System-Stat_DB.xml b/=A01+UH04-KF00/Programmbausteine/SCADA/FB-OPC_UA_System-Stat_DB.xml
new file mode 100644
index 0000000..22875ea
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/SCADA/FB-OPC_UA_System-Stat_DB.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+ FB-OPC_UA_System-Stat
+ FB
+
+
+
+
+
+
+ FB-OPC_UA_System-Stat_DB
+
+ 8
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/FB_PerfTest.scl b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/FB_PerfTest.scl
new file mode 100644
index 0000000..b5f6472
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/FB_PerfTest.scl
@@ -0,0 +1,104 @@
+FUNCTION_BLOCK "FB_PerfTest"
+{ S7_Optimized_Access := 'TRUE' }
+VERSION : 0.1
+ VAR_INPUT
+ nInSepNo : Int; // Nummer welche hinter Sep-Konstante steckt
+ xInSepFlag : Bool; // Flanke vom Release pro MiniTrolley
+ xInReset : Bool;
+ tInTimeMeasurement : Time := T#86400s; // Default 24h
+ nInGoalFlags : Int; // Anzahl der Releases welche Messung stoppen
+ END_VAR
+
+ VAR
+ tOnTimer {InstructionName := 'TON_TIME'; LibVersion := '1.0'; S7_SetPoint := 'False'} : TON_TIME;
+ xTestActive : Bool; // true = Messung läuft
+ xTimerRun : Bool; // Signal für Timer
+ nCount : Int; // MiniTrolleys pro Sep während Messung
+ Date_And_TimeStart : Date_And_Time; // Beginn mit erstem MiniTrolley
+ Date_And_TimeLap : Date_And_Time; // Zeit bei jedem weiteren MiniTrolley
+ tTimeResult : Time; // jeweiliges Ergebnis
+ rTrigRun {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
+ fTrigRun {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
+ fTrigSepFlag {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
+ END_VAR
+ VAR RETAIN
+ arTrolley : Array[1..500] of Struct
+ nCountNo : Int; // Aktuelle Schaltung
+ tTimeEvent : Date_And_Time; // Zeitstempel bei Release
+ tTimeResult : Time; // Differenz seit Start
+ END_STRUCT;
+ nTrolleyNo : Int; // aktuelle Zeile in Array in welche geschrieben wird
+ END_VAR
+
+ VAR_TEMP
+ nTmpTimeReturn : Int;
+ nIdx : Int;
+ END_VAR
+
+
+BEGIN
+ IF #nTrolleyNo = 0 THEN
+ #nTrolleyNo := 1;
+ END_IF;
+
+ REGION Flanken erfassen
+ #rTrigRun(CLK := #xTestActive);
+ #fTrigRun(CLK := #xTestActive);
+ #fTrigSepFlag(CLK := #xInSepFlag);
+ END_REGION
+
+ REGION Nullen bei neuer Messung
+ IF #xInReset THEN
+ #Date_And_TimeLap := DT#1990-01-01-00:00:00;
+ #Date_And_TimeStart := DT#1990-01-01-00:00:00;
+ #tTimeResult := T#0s;
+ #nTrolleyNo := 1;
+ FOR #nIdx := 1 TO 500 DO
+ #arTrolley[#nIdx].nCountNo := 0;
+ #arTrolley[#nIdx].tTimeEvent := DT#1990-01-01-00:00:00;
+ #arTrolley[#nIdx].tTimeResult := T#0s;
+ END_FOR;
+ ELSIF #rTrigRun.Q THEN
+ #Date_And_TimeLap := DT#1990-01-01-00:00:00;
+ #Date_And_TimeStart := DT#1990-01-01-00:00:00;
+ #tTimeResult := T#0s;
+ #nTrolleyNo := 1;
+ #xTimerRun := TRUE;
+ END_IF;
+ END_REGION
+
+ REGION Sep-Flanken während Messung erfassen
+ //Während Messtimer läuft und 1. Flanke kommt, ermittle Zeit und schreibe sie weg und erhöhe Pos für nächste Zeile.
+ //Danach so weiter machen aber dann immer die Zeitdifferenz wegschreiben
+ IF #tOnTimer.ET > T#0s AND #tOnTimer.ET < #tInTimeMeasurement AND #fTrigSepFlag.Q THEN
+ IF #nTrolleyNo = 1 THEN //Nur beim ersten Trolley die Startzeit ermitteln
+ #nTmpTimeReturn := RD_SYS_T(#Date_And_TimeStart);
+ END_IF;
+ #nTmpTimeReturn := RD_SYS_T(#Date_And_TimeLap); //Flankenzeitpunkt für Differenz aus diesem und Startzeitpunkt
+ #tTimeResult := T_DIFF(IN1 := #Date_And_TimeLap, IN2 := #Date_And_TimeStart);
+ //Daten wegschreiben
+ #arTrolley[#nTrolleyNo].nCountNo := #nTrolleyNo;
+ #arTrolley[#nTrolleyNo].tTimeEvent := #Date_And_TimeLap;
+ #arTrolley[#nTrolleyNo].tTimeResult := #tTimeResult;
+ //erhöhen für nächste Zeile oder beende Messung
+ IF #nTrolleyNo <= #nInGoalFlags THEN
+ #nTrolleyNo += 1;
+ ELSIF #tOnTimer.ET >= #tInTimeMeasurement OR #fTrigRun.Q OR #nTrolleyNo > #nInGoalFlags THEN
+ #xTimerRun := FALSE;
+ #xTestActive := FALSE;
+ END_IF;
+
+ END_IF;
+ IF #tOnTimer.ET >= #tInTimeMeasurement OR #fTrigRun.Q OR #nTrolleyNo > #nInGoalFlags THEN
+ #xTimerRun := FALSE;
+ #xTestActive := FALSE;
+ END_IF;
+ END_REGION
+
+ REGION Timer
+ #tOnTimer(IN := #xTimerRun,
+ PT := #tInTimeMeasurement);
+ END_REGION
+
+END_FUNCTION_BLOCK
+
diff --git a/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_406.xml b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_406.xml
new file mode 100644
index 0000000..1de62fc
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_406.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ false
+ FB_PerfTest
+ FB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ fbPerfTest_406
+
+ 52
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_418.xml b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_418.xml
new file mode 100644
index 0000000..4104b2a
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_418.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+ FB_PerfTest
+ FB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ fbPerfTest_418
+
+ 51
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_421.xml b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_421.xml
new file mode 100644
index 0000000..fc02ab5
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_421.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ false
+ FB_PerfTest
+ FB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ fbPerfTest_421
+
+ 53
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_422.xml b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_422.xml
new file mode 100644
index 0000000..f57938f
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_422.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ false
+ FB_PerfTest
+ FB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ fbPerfTest_422
+
+ 54
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_423.xml b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_423.xml
new file mode 100644
index 0000000..3dd04cc
--- /dev/null
+++ b/=A01+UH04-KF00/Programmbausteine/_PerformanceMeasurement_/fbPerfTest_423.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ false
+ FB_PerfTest
+ FB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ fbPerfTest_423
+
+ 55
+ DB
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
+
+ cs-CZ
+
+
+
+
+
+ de-DE
+
+
+
+
+
+ en-US
+
+
+
+
+
+
+
+
\ No newline at end of file