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 + + + + + + + + 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] + + + + + + + + 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 + + + + + + + + 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] + + + + + + + + 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] + + + + + + + + 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 + + + + + + + + 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] + + + + + + + + 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] + + + + + + + + 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 + + + + + + + + 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 + + + + + + + + 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 + + + + + + + + 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 + + + + + + + + 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 + + + + + + + + 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 + + + + + + + + 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 + +
+
+
+ +
+
+ + + true + + +
+ + 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 + + +
+
+
+
+ + 0 + +
+ + + + + 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 @@ + + + + + + +
+ + + + + + true + + +
+
+ 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 + + +
+ + +
+ + 10 + + + 10 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 130 + + + 130 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 130 + + + 130 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 5 + + + 5 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 50 + + + 50 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 1 + + + 1 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 30 + + + 30 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 12 + + + 12 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 30 + + + 30 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 30 + + + 30 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 7 + + + 7 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 50 + + + 50 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 8 + + + 8 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 10 + + + 10 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 20 + + + 20 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 40 + + + 40 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 10 + + + 10 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 20 + + + 20 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 40 + + + 40 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 10 + + + 10 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 20 + + + 20 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 40 + + + 40 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 40 + + + 40 + +
+
+
+
+
+
+
+ + + + + true + + +
+ + +
+ + 2 + + + 2 + +
+
+
+
+
+
+
+
+
+ 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 + + +
+ + +
+ + 60 + + + 60 + +
+
+
+
+
+
+
+
+
+ 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 + + + + + + +
+ + +
+ + 'Jam4000_1' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4001_1' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4001_2' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4002_1' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4002_2' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4003_1' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_2' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_3' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_4' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_5' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_6' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_7' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4003_8' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4004_1' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4004_2' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4005_1' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4006_1' + +
+
+
+
+
+
+ + +
+ + +
+ + 'Jam4006_2' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4006_3' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4007_1' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4008_1' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4008_2' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4009_1' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4010_1' + +
+
+
+
+
+
+ + + true + + +
+ + +
+ + 'Jam4010_2' + +
+
+
+
+
+
+
+ + + +
+ + +
+ + 'Jam4011_1' + +
+
+
+
+
+
+
+
+ + + 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.Sep1' + +
+
+
+
+
+
+ + +
+ + +
+ + 'TRO400.Var1' + + + 'MA0070' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO401.Sep1' + +
+
+
+
+
+
+ + +
+ + +
+ + 'TRO401.Var1' + + + 'MA0071' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO402.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO403.Sep1' + +
+
+
+
+
+
+ + +
+ + +
+ + 'TRO403.Var1' + + + 'MA0073' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO400.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep1Switch + + +
+ + +
+ + +
+ + 'TRO405.Sep1' + +
+
+
+
+
+
+ + +
+ + 'TRO405.Swi1' + +
+
+
+ + +
+ + 'BX4100' + + + 'TRO405' + + + '192.168.4.100' + +
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO406.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4101' + + + 'TRO406' + + + '192.168.4.101' + +
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO407.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4102' + + + 'TRO407' + + + '192.168.4.102' + +
+
+
+ + +
+ + +
+ + 'TRO407.Var1' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep1Switch + + +
+ + +
+ + +
+ + 'TRO408.Sep1' + +
+
+
+
+
+
+ + +
+ + 'TRO408.Swi1' + +
+
+
+ + +
+ + +
+ + 'TRO408.Var1' + + + 'MA0061' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO409.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO410.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4104' + + + 'TRO410' + + + '192.168.4.110' + +
+
+
+ + +
+ + +
+ + 'TRO410.Var1' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep1Switch + + +
+ + +
+ + +
+ + 'TRO411.Sep1' + +
+
+
+
+
+
+ + +
+ + 'TRO411.Swi1' + +
+
+
+ + +
+ + +
+ + 'TRO411.Var1' + + + 'MA0063' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO412.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO413.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4106' + + + 'TRO413' + + + '192.168.4.106' + +
+
+
+ + +
+ + +
+ + 'TRO413.Var1' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep1Switch + + +
+ + +
+ + +
+ + 'TRO414.Sep1' + +
+
+
+
+
+
+ + +
+ + 'TRO414.Swi1' + +
+
+
+ + +
+ + +
+ + 'TRO414.Var1' + + + 'MA0065' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO415.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO416.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO417.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO418.Sep1' + +
+
+
+
+
+
+ + +
+ + +
+ + 'TRO418.Var1' + + + 'MA0074' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO419.Sep1' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO420.Sep1' + +
+
+
+
+
+
+ + +
+ + +
+ + 'TRO420.Var1' + + + 'MA0072' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO421.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4103' + + + 'TRO421' + + + '192.168.4.103' + +
+
+
+ + +
+ + +
+ + 'TRO421.Var1' + + + 'MA0062' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO422.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4105' + + + 'TRO422' + + + '192.168.4.105' + +
+
+
+ + +
+ + +
+ + 'TRO422.Var1' + + + 'MA0064' + +
+
+
+
+
+
+
+
+
+ + + true + + + Vario + + +
+ + +
+ + +
+ + 'TRO423.Sep1' + +
+
+
+
+
+
+ + +
+ + 'BX4107' + + + 'TRO423' + + + '192.168.4.107' + +
+
+
+ + +
+ + +
+ + 'TRO423.Var1' + + + 'MA0066' + +
+
+
+
+
+
+
+
+
+ + + true + + + 1Sep + + +
+ + +
+ + +
+ + 'TRO424.Sep1' + +
+
+
+
+
+
+
+
+
+
+ + + 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