diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-08-25 10:08:01 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-08-25 10:08:01 +0300 |
| commit | 338edba081dba2a2aefb634811be1cc84ec93d64 (patch) | |
| tree | 0021538796c254a8eab8527e8461a2e831e68c1c /Software/Stubs Collection | |
| parent | 49ddda1cc22d6cbb72f499b37e5db32c95252dfa (diff) | |
| download | Tango-338edba081dba2a2aefb634811be1cc84ec93d64.tar.gz Tango-338edba081dba2a2aefb634811be1cc84ec93d64.zip | |
merge
Diffstat (limited to 'Software/Stubs Collection')
12 files changed, 2811 insertions, 376 deletions
diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj index 848c78a65..cb927de17 100644 --- a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj +++ b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj @@ -1 +1 @@ -{"$id":"1","Inputs":{"$id":"2","$values":[{"$id":"3","Type":"Selection","SelectionInputs":{"$id":"4","$values":[{"$id":"5","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"6","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"7","Type":"Default","SelectionInputs":{"$id":"8","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"9","Type":"Default","SelectionInputs":{"$id":"10","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Dialogs":{"$id":"11","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","Name":"EmbeddedParametersBuild","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","ApartmentState":"MTA","ReferenceAssemblies":{"$id":"12","$values":[{"$id":"13","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"23","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Scripts":{"$id":"24","$values":[{"$id":"25","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tFileStream fs = new FileStream(\"C:/temp/EmbParam.cfg\",FileMode.Open);\r\n\r\n\t\twhile (fs.Position < fs.Length)\r\n\t\t{\r\n\t\t\t\tcontext.Write(\"Position \"+ fs.Position+ \" Length \"+ fs.Length +\"\\n\\n\");\r\n\t\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\t\tbyte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];\r\n\t\t\t\tfs.Read(chunk,0,chunk.Length);\r\n\t\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);\t\r\n\t\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\t\tThread.Sleep(2000);\r\n\r\n\t\t}\r\n\r\n\t\t// activating the new file\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xCD;\r\n\t\tprogressRequest.Delay = 0xCD;\r\n\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\r\n }\r\n}"},{"$id":"26","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]}}
\ No newline at end of file +{"$id":"1","Name":"EmbeddedParametersBuild1","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t/*Directory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes1 = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");*/\r\n\t\tbyte[] fileBytes = configurationParameters.ToBytes();\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tcontext.Write(\"Chunk size \"+ chunk_size + \" file size \"+ fileBytes.Length +\"\\n\\n\");\r\n\t\tif (chunk_size < fileBytes.Length)\r\n\t\t{\r\n\t\t\tcontext.AddResult(ResultType.Failed, \"Chunk size too small\", chunk_size);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);\t\r\n\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\r\n\t\t\t//if (response3.\r\n\r\n\t\t\t// activating the new file\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCD;\r\n\t\t\tprogressRequest.Delay = 0xCD;\r\n\t\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\t\t\tcontext.AddResult(ResultType.Passed, \"parameters loaded\", chunk_size);\r\n\t\t}\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild_w_file.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild_w_file.pproj new file mode 100644 index 000000000..643a26ce3 --- /dev/null +++ b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild_w_file.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"EmbeddedParametersBuild","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\tDirectory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tFileStream fs = new FileStream(\"C:/temp/EmbParam.cfg\",FileMode.Open);\r\n\r\n\t\twhile (fs.Position < fs.Length)\r\n\t\t{\r\n\t\t\t\tcontext.Write(\"Position \"+ fs.Position+ \" Length \"+ fs.Length +\"\\n\\n\");\r\n\t\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\t\tbyte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];\r\n\t\t\t\tfs.Read(chunk,0,chunk.Length);\r\n\t\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);\t\r\n\t\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\t\tThread.Sleep(2000);\r\n\r\n\t\t}\r\n\r\n\t\t// activating the new file\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xCD;\r\n\t\tprogressRequest.Delay = 0xCD;\r\n\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/Loading arm calibration.pproj b/Software/Stubs Collection/Procedures/Loading arm calibration.pproj new file mode 100644 index 000000000..e1aacdf5d --- /dev/null +++ b/Software/Stubs Collection/Procedures/Loading arm calibration.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"Loading arm calibration","Description":"This procedure stores the loading arm center according to the current hardware read. it also stores 0 as the number of cycles.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xB1;\r\n\t\t//progressRequest.Delay = 1;\r\n\t\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n\t\r\n\t\tprogressRequest.Amount = 0xB2;\r\n\t\tprogressRequest.Delay = 0;\r\n\t\r\n\t\tresponse = context.Send<ProgressResponse>(progressRequest);\r\n\r\n context.AddResult(ResultType.Passed, \"Loading Arm Calibrated\", \"OK\");\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"68fd5a49-b7ad-4d85-a305-75dc06b35f2f","ApartmentState":"STA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/Mid tank calibration.pproj b/Software/Stubs Collection/Procedures/Mid tank calibration.pproj new file mode 100644 index 000000000..0bb05e75b --- /dev/null +++ b/Software/Stubs Collection/Procedures/Mid tank calibration.pproj @@ -0,0 +1 @@ +{"$id":"1","Inputs":{"$id":"2","$values":[{"$id":"3","Type":"Default","SelectionInputs":{"$id":"4","$values":[]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms","Key":"CheckTampers","Value":"1.0"},{"$id":"5","Type":"Default","SelectionInputs":{"$id":"6","$values":[]},"DisplayName":"Initial Heating on startup","Description":"Initial Heating on startup","Key":"InitialHeating","Value":"true"},{"$id":"7","Type":"Default","SelectionInputs":{"$id":"8","$values":[]},"DisplayName":"WCF Value","Description":"WCF Value","Key":"WCF_Value","Value":"40"},{"$id":"9","Type":"Default","SelectionInputs":{"$id":"10","$values":[]},"DisplayName":"AutoFill Mode","Description":"Controls the AutoFill Mode","Key":"AutoFillMode","Value":"3.0"}]},"Variables":{"$id":"11","$values":[]},"Resources":{"$id":"12","$values":[]},"Dialogs":{"$id":"13","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","Name":"Mid tank calibration","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","ApartmentState":"MTA","ReferenceAssemblies":{"$id":"14","$values":[{"$id":"15","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"25","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Scripts":{"$id":"26","$values":[{"$id":"27","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.IO;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\nprivate IProcedureContext context;\r\n\r\n\t//----------------------\r\n\tconst double \tSlop=0.92;\r\n\tconst double\tMIN_SLOP=0.7;\r\n\tconst double\tMAX_SLOP=1.4;\r\n\tconst double\tERROR_SLOP=-1;\r\n\tconst double\tMIN_50cc_on_volt=2.3;\r\n\tconst double\tMAX_50cc_on_volt=3.2;\r\n\tconst double\tERROR_50cc_on_volt=-1;\r\n\tdouble CartSizeLiter = 1.0;\r\n\t\r\n\tint [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};\r\n\tuint [,] ADC_Add_Chnl = new uint [8,2]\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x20},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x08},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x80},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x20},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x04},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x40},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\r\n\t\r\n\tconst Int32\tF3_VALVE_OUT\t=\t0x600008E2\t;\r\n\tstring Machine_SN\t;\r\n\tprivate const string FILE_PATH = @\"C:\\MidTankLog\\\";\r\n\tstring File_name;\r\n\tdouble [,] voltage_array = new double[9,9];\r\n\tstring [] Parameter = new string[5] {\"\\t\",\"Empty [V]\",\"100cc [V]\",\"800cc [V]\",\" b [L/V] \"};\r\n\t\tdouble Full_Cartridge=1;\t// 1 litter less 100 cc\r\n\t\r\n\t//----------------------\r\n\tconst Int32 I2C_ID = 2;\r\n\t//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46\r\n\t//----------------------\r\n\t\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\tthis.context = context;\r\n\t\r\n\tInt32 midtankno = 0;\r\n\tdouble Full_Point=0;\t\t\t//on Voltage\r\n\tdouble resualt;\r\n\tdouble Sum=0 ;\r\n\tdouble Old_Sum=0 ;\r\n\t\r\n\r\n\tif (!Directory.Exists(FILE_PATH))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(FILE_PATH);\r\n\t\t}\t\t\t\r\n\r\n\r\n \t//Machine_SN = context.GetInput<string>(\"Midtank_SN\");\r\n var response = context.RequestUserInputFor<String>(\"Mid Tank Serial Number\", \"Enter Midtank S/N:\");\r\n\tcontext.Write(\"\\n\");\r\n\tMachine_SN = response;\r\n\tcontext.WriteLine(Machine_SN);\r\n\tFile_name= FILE_PATH +Machine_SN + DateTime.Now.ToString(\"MM_dd_yyyy_HH_mm_ss\")+\".csv\";\r\n\tcontext.Write(File_name);\r\n \tcontext.WriteToFile(File_name,\"MidTank S/N:,\" + Machine_SN); \r\n\t\r\n\t\r\n\r\n\t//midtankno = context.GetInput<int>(\"MidTankId\");\r\n\tvar response1 = context.RequestUserInputFor<String>(\"Mid Tank Number\", \"Enter Midtank number to calibrate (1-8):\");\r\n\tcontext.WriteLine(response1);\r\n\tmidtankno = Int32.Parse(response1);\r\n \tcontext.AppendToFile(File_name,\"MidTank Number:\\t\" + response1);\r\n\r\n\r\n\tvar response2 = context.RequestUserInputFor<int>(\"Cartridge size\", \"Enter enter cartridge size in ml (1000/700/500):\");\r\n\tcontext.WriteLine(response2);\r\n\tint Cart_size = response2;\r\n \tcontext.AppendToFile(File_name,\"Cartrideg size:\\t\" + response2);\r\n\r\n\r\n string box_msg = \"Please Insert cartridge with\" +Cart_size+\"cc (Lubbricant add 500cc only) \";\r\n// string box_title = \"Midatnk empty\";\r\n// context.ShowInfo(box_msg, box_title);\r\n\tcontext.ShowInfo(box_msg);\r\n\r\n\t//int CartInserted = 0;\r\n\t//while (CartInserted == 0)\r\n\t//\tCartInserted = context.GetInput<int>(\"insertCartridge\");\r\n\t\r\n\tCartSizeLiter = Cart_size/1000;\r\n\t\r\n\topen_valve(midtankno,1,1)\t\t;\t//open Air valve\r\n\topen_valve(midtankno,0,1)\t\t;\t//open Ink valve\r\n\tInt32 i=0; \r\n\twhile (i<60*15)\t\t\t\t\t//check for 15 minitus \r\n\t{\r\n\t\tSum=0;\r\n\t\tfor (Int32 j=0;j<30;j++)\r\n\t\t{\r\n\t\t\tresualt=read_pressure_sensor(midtankno);\r\n\t\t\tcontext.AppendToFile(File_name,resualt+\",mV\");\r\n\t\t\tSum=Sum+resualt;\r\n\t\t\tThread.Sleep(1000);\r\n\t\t}\r\n\t\ti=i+1;\r\n\t\tif (Sum>Old_Sum)\r\n\t\t\tOld_Sum=Sum-Old_Sum;\r\n\t\telse\r\n\t\t\tOld_Sum=Old_Sum-Sum;\r\n\t\t\t\r\n\t\tif ( Old_Sum <0.02)\t\r\n\t\t\ti=60*15;\t\t//end \r\n\t\tOld_Sum=Sum;\r\n\t}\r\n\tFull_Point=Sum/30;\r\n\t\r\n\tbox_msg = \"Send file\" + File_name +\"to Mati\"; \r\n\tcontext.ShowInfo(box_msg);\r\n\t\r\n\t\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x000f);\t\t// open all valve air of midtank and close all ink of midtank\r\n\t//\tThread.Sleep(500);\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x00ff);\t\t// open all valve air of midtank and close all ink of midtank\r\n\t//\tThread.Sleep(500);\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x0fff);\t\t// open all valve air of midtank and close all ink of midtank\r\n\t//\tThread.Sleep(500);\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"stubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0xffff);\t\t// open all valve air and ink of midtank\r\n\t//\r\n\t//\tThread.Sleep(2500);\r\n\r\n\t//\tThread.Sleep(1000);\t\r\n\t\t\r\n\t//\tread_pressure_sensor(1);\r\n \t\t\r\n\t//\tbox_msg =\"Insert 100cc of appropriate ink/lube to each midtank\\n\\t1.black ink\\n\\t2. Magenta ink\\n\\t3. Transparent ink\\n\\t4. Cleaner\\n\\t5. Cyan ink\\n\\t6. Yellow ink\\n\\t7. Spot color\\n\\t8. Lubricant/n\";\r\n // context.ShowInfo(box_msg);\r\n//\r\n\t//\tread_pressure_sensor(2);\r\n\r\n\t\t\t\t\t//\tvoltage_array[3,2]=2.5;\r\n\t\t\r\n//\t\tbox_msg = \"Add another 700cc for ink and TI \\nFor Lubbricant add 500cc only.\"; \r\n//\t\tcontext.ShowInfo(box_msg);\r\n//\t\tread_pressure_sensor(3);\r\n//\t\t\t\tcontext.Send<StubFpgaWriteRegResponse>(\"stubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x0000);\t\t// close all valve air and ink of midtank\r\n\t\t\t\t\t\t\t\t\t//\t\t\tvoltage_array[3,3]=4.5;\r\n\tclose_valve(midtankno,1,1)\t\t;\t//close Air valve\r\n\tclose_valve(midtankno,0,1)\t\t;\t//close Ink valve\r\n\r\n//\t\tcalc_slop();\r\n//\t\tprint_table();\r\n\t\t\r\n//\t\tinsert_slop_t_eeprom(Full_Point, midtankno);\r\n\t\tinsert_slop_t_eeprom(Full_Point, midtankno);\r\n\t\tbox_msg =\"Turn Power Off and On to finish the calibration.\";\r\n context.ShowInfo(box_msg);\r\n\t\r\n\t}\r\n\r\nint calc_slop()\r\n\t{\r\n\tcontext.Write(\"\\n \");\r\n\t\t\r\n\tdouble delta;\r\n\tfor (uint i=1;i<9;i++)\r\n\t\t{\r\n\t\t\tdelta=voltage_array[i,3]-voltage_array[i,2];\r\n\t\t\r\n\t\t\tcontext.Write(\"\\nMidtank No:\"+i +\"=\"+delta);\r\n//\t\t\tif (i==8)\r\n\t\t\t\tdelta=CartSizeLiter/delta;\t\t\t\t\t\t\t\t\t\t\t\t//0.5 litter on lubricant\t\t\t\r\n//\t\t\telse \r\n//\t\t\t\tdelta=CartSizeLiter/delta;\t\t\t\t\t\t\t\t\t\t\t\t//0.7 litter\r\n\t\t\t\t\r\n\t\t\tif ((delta<MIN_SLOP) || (delta >MAX_SLOP)) \r\n\t\t\t{\r\n\t\t\t\tvoltage_array[i,4]=ERROR_SLOP;\r\n\t\t//\t\tcontext.Write(\"123\");\r\n\t\t\t}\r\n\t\telse if\t((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt ))\r\n\t\t\t\t\tvoltage_array[i,4]=ERROR_SLOP;\r\n\t\telse\r\n\t\tvoltage_array[i,4]=delta;\r\n\t\t}\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\tint\tinsert_slop_t_eeprom( double FullPoint,Int32 midtankno)\r\n{\r\n//\tcontext.Write(\"\\n \");\r\n\r\n\tMidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();\r\n\r\n\r\n//\tfor (uint i=1;i<9;i++)\r\n//\t{\r\n//\t\tif (voltage_array[i,4]!= ERROR_SLOP)\r\n//\t\t{\r\n\t\tMidTankData midTankData = new MidTankData();\r\n\t\tmidTankData.MidTankId = Convert.ToUInt32 (midtankno-1);\r\n\t\tmidTankData.InitialOffsetA =FullPoint - (Full_Cartridge-0.1)/Slop;\r\n\t\tmidTankData.SlopeB = Slop;\r\n\t\t\r\n\t\tcontext.Write(\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\t\tcontext.AppendToFile(File_name,\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\r\n\t\t\r\n\t\tmidTankDataSetupRequest.MidTankInfo.Add(midTankData);\r\n\t\r\n\t//\t}\r\nvar response = context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t//}\r\n\r\n\r\nreturn\t1;\r\n}\r\n\r\n//\r\n//\r\n//int\t\tprint_table()\r\n//\t\t{\r\n//\r\n//\t\tfor (uint i=0;i<5;i++)\r\n//\t\t\t{\r\n//\t\t\t\tcontext.AppendToFile(File_name,Parameter[i]+\"\\t\"+voltage_array[1,i]+\"\\t\"+voltage_array[2,i]+\"\\t\"+voltage_array[3,i]+\"\\t\"+voltage_array[4,i]+\"\\t\"+voltage_array[5,i]+\"\\t\"+voltage_array[6,i]+\"\\t\"+voltage_array[7,i]+\"\\t\"+voltage_array[8,i]) ;\r\n// } \r\n// \r\n//\t\r\n//\t\t\treturn 1;\r\n//\r\n//\t\t}\r\n\r\n//start mat\r\n\r\nint adc_configuration(uint I2C_Slave_Add,uint channel ) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write\r\n\t\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\nint adc_set_for_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\r\n\r\ndouble adc_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\tuint temph=0;\r\n\tuint templ=0;\r\n\tuint temp;\r\n\tdouble calc;\r\n\tdouble calc1;\r\n\tdouble calc2;\r\n\t\t\ttemph=response1.ReadBytes[0];\r\n\t\t\ttempl=response1.ReadBytes[1];\r\n\t\t\ttemp = (temph << 8) | templ;\r\n\t\t\ttemp=temp & 0x0fff;\r\n\t\t\t\t\r\n\t\t\tcalc = (double)temp *2.5 / 4096.0;\r\n//\t\t\tcontext.Write(\"ADC [volts]:\\t\");\r\n//\t\t\tcontext.Write(calc+\"\\t\");\r\n\t\t\r\n\t\t\tcalc1 = (1.96- calc) * 4.64 + 1.96;\r\n\t\t\tcontext.Write(\"Vsensor [volts]:\\t\");\r\n\t\t\tcontext.Write(calc1 + \"\\n\");\r\n\r\n\t//\t\tvoltage_array[table_index_x,table_index_y]=calc1;\r\n\t\r\n\treturn calc1;\r\n\t}\r\n\r\ndouble\t\tread_pressure_sensor(Int32 i )\r\n\t{\r\ndouble resualt =0 ;\r\n\t\t switch (i)\r\n {\r\n case 1:\r\n\t\t\tadc_configuration(0x44,0x20);\t\t//a2d_address 0x44 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 2:\r\n\t\t\tadc_configuration(0x44,0x08);\t\t//a2d_address 0x44 channel channel 4\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 3:\r\n\t\t\tadc_configuration(0x46,0x80);\t\t//a2d_address 0x46 channel channel 0\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\tadc_configuration(0x46,0x20);\t\t//a2d_address 0x46 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 5:\r\n\t\t\tadc_configuration(0x44,0x10);\t\t//a2d_address 0x44 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 6:\r\n\t\t\tadc_configuration(0x44,0x04);\t\t//a2d_address 0x44 channel channel 5\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 7:\r\n\t\t\tadc_configuration(0x46,0x40);\t\t//a2d_address 0x46 channel channel 1\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 8:\r\n\t\t\tadc_configuration(0x46,0x10);\t\t//a2d_address 0x46 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n default:\r\n context.Write(\"Error\");\r\n\r\n break;\r\n\t }\t\r\n\t\t\r\n\t\treturn resualt;\r\n\t}\t\r\n\r\n\r\n//--------------------------------\r\nint open_valve (int valve_nm,int valve_type,int check_valve)\t\t//valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1]\t;\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);\t\r\n\t\r\n\t\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tif(!context.ShowWarningQuestion(\"Did \" + temp + \"Valve of Midtank \" + valve_nm +\" open?\"))\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tOpen\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_valve (int valve_nm,int valve_type,int check_valve)\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);\r\n\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tif(!context.ShowWarningQuestion(\"Did \" + temp +\" Valve of Midtank \" + valve_nm +\" close?\"))\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tclose\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\t\t\t\r\n\t\t}\r\n\treturn 1;\r\n\r\n}\r\n\r\npublic Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\tvar RetVal = Fpga_Read_Reg(Adr);\r\n\tInt32 RV = (Int32) RetVal.Value;\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tFpga_Write_Reg( Adr, RV );\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tFpga_Write_Reg(Adr, RV );\t\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nint Fpga_Write_Reg(Int32 Addr, Int32 Data)\r\n{\r\n\tvar response = context.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,Addr, Data);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n\r\nStubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)\r\n{\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,Addr);\r\n\tresponse.Value = response.Value & 0xffff;\r\n\t\r\n\treturn response;\r\n}\r\n}"},{"$id":"28","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]}}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj index 767f1f3cc..8632288f2 100644 --- a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj +++ b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj @@ -1 +1 @@ -{"$id":"1","Name":"WHS Loop Disable","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = context.GetInput<int>(\"WasteControlLoop\");\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopEnable*0x1000+2700;\r\n\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n context.AddResult(ResultType.Passed, \"Success\", response.Progress);\r\n context.AddResult(ResultType.Failed, \"Failed\", response.Progress);\r\n\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Waste Control Loop Enabled","Description":"Waste Control Loop Enabled","Key":"WasteControlLoop","Value":"1"}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"20","$values":[]},"ID":"eb9234b2-2aa0-4bf2-bfe4-dcc8de49bda6","ApartmentState":"MTA"}
\ No newline at end of file +{"$id":"1","Name":"WHS Loop Disable","Description":"This procedure controls the waste head flow control loop. Set the loop parameter to false to disable, to true to enable.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = context.GetInput<int>(\"WasteControlLoop\");\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopEnable*0x1000+2700;\r\n\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n context.AddResult(ResultType.Passed, \"Success\", response.Progress);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable WHS Control","Value":"1"},{"$id":"9","Name":"Disable WHS Control","Value":"0"}]},"DisplayName":"Waste Control Loop Enable","Description":"Waste Control Loop Enable/Disable","Key":"WasteControlLoop","Value":"0"}]},"Variables":{"$id":"10","$values":[]},"ReferenceAssemblies":{"$id":"11","$values":[{"$id":"12","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"22","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"23","$values":[]},"Dialogs":{"$id":"24","$values":[]},"ID":"eb9234b2-2aa0-4bf2-bfe4-dcc8de49bda6","ApartmentState":"MTA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/ERRFILE.TXT b/Software/Stubs Collection/stubs/ERRFILE.TXT new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/Software/Stubs Collection/stubs/ERRFILE.TXT diff --git a/Software/Stubs Collection/stubs/Main card Watchdog test.cs b/Software/Stubs Collection/stubs/Main card Watchdog test.cs new file mode 100644 index 000000000..3db075678 --- /dev/null +++ b/Software/Stubs Collection/stubs/Main card Watchdog test.cs @@ -0,0 +1,24 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + +//"Set WFCF Value +ProgressRequest progressRequest = new ProgressRequest(); +progressRequest.Amount = 0xAD9; +progressRequest.Delay = 0; + +var response = stubManager.Run<ProgressResponse>(progressRequest); + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs deleted file mode 100644 index 6d2b6298e..000000000 --- a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs +++ /dev/null @@ -1,193 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ - - -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - -configurationParameters.BreakSensorLimit = 10; - -//how many samples to collect in diagnostics before sending -configurationParameters.DiagnosticCollectionLimit = 3; - -//how many consecutive readout before declaring DC over/underheat alarm -configurationParameters.OverHeatCountLimit = 3; -configurationParameters.UnderHeatCountLimit = 3; - -// time of motor activity before opening the valve or after closing the valve, in milliseconds -configurationParameters.CloseValveTimeout = 22; -configurationParameters.OpenValveTimeout = 22; - -//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters) -configurationParameters.InitialDispenserPressure = 0.25; -configurationParameters.InitialDispenserTimeout = 60000; //20 seconds -configurationParameters.InitialDispenserTimeLag = 100; - -//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed -configurationParameters.DispenserBuildPressureSpeed = 960; //no more than 1000 -configurationParameters.DispenserBuildPressureLimit = 1.0; -configurationParameters.DispenserBuildPressureTimeout = 180000; -configurationParameters.DispenserBuildPressureLag = 100; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - AC -configurationParameters.ACHeatersLowerOperationLimit = 995; -configurationParameters.ACHeatersUpperOperationLimit = 1005; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - DC -configurationParameters.DCHeatersLowerOperationLimit = 978; -configurationParameters.DCHeatersUpperOperationLimit = 1005; - -// mid tank reading offset to add to the readout (OBSOLETE!) -configurationParameters.MidTankPressureCorrection = 0.0; - -//waste factor for intersegment pressure building -configurationParameters.DispenserPresegmentWFCF = 40; -//how much time to start the WFCF process (pressure buildup) before segment start -configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000; - -//flag: start heaters according to saved process parameters upon init? -configurationParameters.StartHeatingOnInitSequence = true; - -// current test for the heaters - alarm thresholds -configurationParameters.CurrentAlarmLowLimit = 0.78; -configurationParameters.CurrentAlarmHighLimit = 1.09; - -//currently not in use -configurationParameters.IDSSegmentRefillTimeout = 5000; -configurationParameters.IDSPreSegmentBuildupTime = 5000; -//cleaning!!!!!!!!!! -configurationParameters.IDSCleaningSpeed = 800; -configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt -configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment - -int Tup=3,Tdelay1=5,Tdelay2=20; -/* Tup = LeftRockerSpeed/100; - Tdelay1 = LeftRockerSpeed%100; - Tdelay2 = RightRockerSpeed; -*/ -configurationParameters.IDSLeftCleaningMotorSpeed = Tup*100+Tdelay1; -configurationParameters.IDSRightCleaningMotorSpeed = Tdelay2; - -configurationParameters.SwitchToIdleTimeinSeconds = 3600; -configurationParameters.IdleDrierTemperature = 80; -configurationParameters.IdleHeadTemperature = 80; -configurationParameters.IdleMixerTemperature = 0; -configurationParameters.PowerOffTemperatureLimit = 60; - -//general parameters, ORDER MUST BE PRESERVED!!!! -//check the dispensers hard limit alarms -/*1*/ -Double checkHardLimitAlarms = new Double(); - -checkHardLimitAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkHardLimitAlarms); - -/*2*/ -Double checkCurrentAlarms = new Double(); -checkCurrentAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkCurrentAlarms); -//check the tamper alarms - -/*3*/ -Double checkTamperAlarms = new Double(); -checkTamperAlarms = 0.0; -configurationParameters.GeneralParameters.Add(checkTamperAlarms); - -/*4*/ -Double checkMotorAlarms = new Double(); -checkMotorAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkMotorAlarms); - -/*5*/ -Double WinderBackToBaseTime = new Double(); -WinderBackToBaseTime = 820.0; -configurationParameters.GeneralParameters.Add(WinderBackToBaseTime); - -/*6*/ -Double DispenserInitialPressureSpeed = new Double(); -DispenserInitialPressureSpeed = 1050.0; -configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed); - -/*7*/ -Double SetDiagnosticMode = new Double(); -SetDiagnosticMode = 3.0; -configurationParameters.GeneralParameters.Add(SetDiagnosticMode); - -/*8*/ -Double SetAutoFill = new Double(); -SetAutoFill = 3.0; -configurationParameters.GeneralParameters.Add(SetAutoFill); - -File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); - -byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg"); - - -var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); - -stubManager.Write( config); -Thread.Sleep(1000); - - -stubManager.Write("\n\n Deleting old file"); - -DeleteRequest deleteRequest = new DeleteRequest(); -deleteRequest.Path = "SYSINFO//EmbParam.cfg"; -deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; -DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest); - - -Thread.Sleep(1000); -stubManager.Write("\n\n Loading new file file"); - -FileUploadRequest fileUploadRequest = new FileUploadRequest(); -fileUploadRequest.Path = "SYSINFO//EmbParam.cfg"; -fileUploadRequest.Length = (int)fileBytes.Length; -FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest); -Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; - -FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -while (fs.Position < fs.Length) -{ - stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n"); - FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); - fileChunkUploadRequest.UploadID = response2.UploadID; - byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)]; - fs.Read(chunk,0,chunk.Length); - fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk); - var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); - Thread.Sleep(2000); - -} - -// activating the new file -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xCD; -progressRequest.Delay = 0xCD; -var response1 = stubManager.Run<ProgressResponse>(progressRequest); - - -/* -13:46:42.38: Executing script 'embeddedparametersbuild.cs'... -{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */ - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs index 3b3768310..ee610b445 100644 --- a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs +++ b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs @@ -42,7 +42,7 @@ configurationParameters.InitialDispenserTimeLag = 100; //job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000 configurationParameters.DispenserBuildPressureLimit = 0.85; -configurationParameters.DispenserBuildPressureTimeout = 180000; +configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build configurationParameters.DispenserBuildPressureLag = 100; //temperature band 1000 = 100% - thresholds for job start around target temprature - AC @@ -76,7 +76,7 @@ configurationParameters.IDSCleaningSpeed = 800; configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment -int Tup = 8,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again +int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again // Tup = LeftRockerSpeed/100; // Tdelay1 = LeftRockerSpeed%100; // Tdelay2 = RightRockerSpeed; @@ -108,7 +108,7 @@ configurationParameters.GeneralParameters.Add(checkCurrentAlarms); /*3*/ Double checkTamperAlarms = new Double(); -checkTamperAlarms = 1.0; +checkTamperAlarms = 0.0; configurationParameters.GeneralParameters.Add(checkTamperAlarms); /*4*/ diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuildand load.cs b/Software/Stubs Collection/stubs/embeddedparametersbuildand load.cs deleted file mode 100644 index ed3e3f8d9..000000000 --- a/Software/Stubs Collection/stubs/embeddedparametersbuildand load.cs +++ /dev/null @@ -1,178 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ - - -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - -configurationParameters.BreakSensorLimit = 10; - -//how many samples to collect in diagnostics before sending -configurationParameters.DiagnosticCollectionLimit = 3; - -//how many consecutive readout before declaring DC over/underheat alarm -configurationParameters.OverHeatCountLimit = 3; -configurationParameters.UnderHeatCountLimit = 3; - -// time of motor activity before opening the valve or after closing the valve, in milliseconds -configurationParameters.CloseValveTimeout = 49; -configurationParameters.OpenValveTimeout = 49; - -//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters) -configurationParameters.InitialDispenserPressure = 0.25; -configurationParameters.InitialDispenserTimeout = 60000; //20 seconds -configurationParameters.InitialDispenserTimeLag = 100; - -//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed -configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000 -configurationParameters.DispenserBuildPressureLimit = 1.0; -configurationParameters.DispenserBuildPressureTimeout = 180000; -configurationParameters.DispenserBuildPressureLag = 50; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - AC -configurationParameters.ACHeatersLowerOperationLimit = 995; -configurationParameters.ACHeatersUpperOperationLimit = 1005; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - DC -configurationParameters.DCHeatersLowerOperationLimit = 978; -configurationParameters.DCHeatersUpperOperationLimit = 1005; - -// mid tank reading offset to add to the readout (OBSOLETE!) -configurationParameters.MidTankPressureCorrection = 0.0; - -//waste factor for intersegment pressure building -configurationParameters.DispenserPresegmentWFCF = 40; -//how much time to start the WFCF process (pressure buildup) before segment start -configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000; - -//flag: start heaters according to saved process parameters upon init? -configurationParameters.StartHeatingOnInitSequence = true; - -// current test for the heaters - alarm thresholds -configurationParameters.CurrentAlarmLowLimit = 0.78; -configurationParameters.CurrentAlarmHighLimit = 1.07; - -//currently not in use -configurationParameters.IDSSegmentRefillTimeout = 5000; -configurationParameters.IDSPreSegmentBuildupTime = 5000; -//cleaning!!!!!!!!!! -configurationParameters.IDSCleaningSpeed = 800; -configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt -configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment - -configurationParameters.IDSLeftCleaningMotorSpeed = 49; -configurationParameters.IDSRightCleaningMotorSpeed = 49; - -configurationParameters.SwitchToIdleTimeinSeconds = 3600; -configurationParameters.IdleDrierTemperature = 80; -configurationParameters.IdleHeadTemperature = 80; -configurationParameters.IdleMixerTemperature = 0; -configurationParameters.PowerOffTemperatureLimit = 100; - -//general parameters, ORDER MUST BE PRESERVED!!!! -//check the dispensers hard limit alarms -/*1*/ -Double checkHardLimitAlarms = new Double(); - -checkHardLimitAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkHardLimitAlarms); - -/*2*/ -Double checkCurrentAlarms = new Double(); -checkCurrentAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkCurrentAlarms); -//check the tamper alarms - -/*3*/ -Double checkTamperAlarms = new Double(); -checkTamperAlarms = 0.0; -configurationParameters.GeneralParameters.Add(checkTamperAlarms); - -/*4*/ -Double checkMotorAlarms = new Double(); -checkMotorAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkMotorAlarms); - -/*5*/ -Double WinderBackToBaseTime = new Double(); -WinderBackToBaseTime = 820.0; -configurationParameters.GeneralParameters.Add(WinderBackToBaseTime); - -/*6*/ -Double DispenserInitialPressureSpeed = new Double(); -DispenserInitialPressureSpeed = 1050.0; -configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed); - -/*7*/ -Double SetDiagnosticMode = new Double(); -SetDiagnosticMode = 3.0; -configurationParameters.GeneralParameters.Add(SetDiagnosticMode); - -/*8*/ -Double SetAutoFill = new Double(); -SetAutoFill = 3.0; -configurationParameters.GeneralParameters.Add(SetAutoFill); - -File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); - -byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg"); - - -var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); - - stubManager.Write( config); - Thread.Sleep(1000); -stubManager.Write("\n\n Deleting old file"); - -DeleteRequest deleteRequest = new DeleteRequest(); -deleteRequest.Path = "SYSINFO//EmbParam.cfg"; -deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; -DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest); - - Thread.Sleep(1000); -stubManager.Write("\n\n Loading new file file"); - - FileUploadRequest fileUploadRequest = new FileUploadRequest(); -fileUploadRequest.Path = "SYSINFO//EmbParam.cfg"; -fileUploadRequest.Length = (int)fileBytes.Length; -FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest); - Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; - -FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -while (fs.Position < fs.Length) -{ - stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n"); - FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); - fileChunkUploadRequest.UploadID = response2.UploadID; - byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)]; - fs.Read(chunk,0,chunk.Length); - fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk); - var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); - Thread.Sleep(2000); - -} - -/* -13:46:42.38: Executing script 'embeddedparametersbuild.cs'... -{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */ - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf b/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf new file mode 100644 index 000000000..902c1d414 --- /dev/null +++ b/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf @@ -0,0 +1,2722 @@ +<?xml version="1.0"?> +<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Items /> + <Tabs> + <MachineTechViewProjectTab> + <Name>Temperatures</Name> + <Items> + <TechItem xsi:type="DigitalOutItem"> + <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> + <Left>461</Left> + <Top>703.30530973452176</Top> + <Width>160</Width> + <Height>102.34070796460173</Height> + <Angle>0</Angle> + <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> + <Left>1015</Left> + <Top>597.31415929203365</Top> + <Width>207</Width> + <Height>184.4159292035398</Height> + <Angle>0</Angle> + <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerAirHeater</HeaterType> + <SetPoint>180</SetPoint> + <CurrentValue>180.04999999999998</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>180</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> + <Left>909</Left> + <Top>676.91592920354287</Top> + <Width>130</Width> + <Height>100.31415929203541</Height> + <Angle>0</Angle> + <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerMainHeater</HeaterType> + <SetPoint>36</SetPoint> + <CurrentValue>195.07</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>36</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> + <Left>776</Left> + <Top>676.15044247787159</Top> + <Width>127</Width> + <Height>101.3274336283186</Height> + <Angle>0</Angle> + <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerSecondaryHeater</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>196.38</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> + <Left>848</Left> + <Top>115.38495575221202</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone3</HeaterType> + <SetPoint>85</SetPoint> + <CurrentValue>85.02</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>85</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> + <Left>1024</Left> + <Top>116.35840707964502</Top> + <Width>200</Width> + <Height>194.90707964601751</Height> + <Angle>0</Angle> + <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone2</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>80.52</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> + <Left>1221</Left> + <Top>116.60619469026824</Top> + <Width>170</Width> + <Height>192.69026548672593</Height> + <Angle>0</Angle> + <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone1</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>80.19</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> + <Left>1212</Left> + <Top>599.55752212389427</Top> + <Width>173</Width> + <Height>183.40265486725662</Height> + <Angle>0</Angle> + <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>MixerHeater</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>79.08</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> + <Left>1033</Left> + <Top>341.74778761061987</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone5</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>1.22</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> + <Left>327</Left> + <Top>682.06637168140855</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> + <Left>1027.9999999999973</Left> + <Top>291.07079646017547</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text /> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> + <Left>907.99999999999909</Left> + <Top>295.35840707964616</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text /> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> + <Left>785.00000000000159</Left> + <Top>288.5000000000004</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text /> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> + <Left>624.99999999999966</Left> + <Top>285.86725663716874</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text /> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> + <Left>624</Left> + <Top>697.74778761062794</Top> + <Width>155</Width> + <Height>96.261061946902714</Height> + <Angle>0</Angle> + <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>43793f93-da64-4409-b583-bca498f641e6</ID> + <Left>345.00000000002086</Left> + <Top>136.75221238937925</Top> + <Width>203</Width> + <Height>107.40707964601774</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>D023F15D-3555-48E9-A9E9-5DF99F60D791</string> + <string>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</string> + <string>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</string> + <string>C8AB34C4-F921-4329-817A-7698DDAD01C6</string> + <string>48E8DD1B-46EC-4576-B513-7E734503B6DA</string> + <string>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</string> + <string>D7585119-4A42-4370-8F1E-F3E62553E588</string> + <string>098F7CAB-030C-46B0-B2B8-A85AF2253032</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> + <Left>1225</Left> + <Top>341.14159292034878</Top> + <Width>175</Width> + <Height>193.42920353982305</Height> + <Angle>0</Angle> + <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone7</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>1.17</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> + <Left>1190.0000000000025</Left> + <Top>294.69026548672929</Top> + <Width>39</Width> + <Height>38.504424778760836</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text /> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> + <Left>1369</Left> + <Top>295.87168141592934</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text /> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>21aa11c9-3d35-4902-901a-b9ed45117e09</ID> + <Left>653</Left> + <Top>860.82743362831877</Top> + <Width>382</Width> + <Height>223.93362831858394</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>811430c0-2afc-4e9b-8077-a74e1fd2f825</Guid> + <LastUpdated>2020-01-14T11:41:02.8729031Z</LastUpdated> + <Name>Process parameters 3</Name> + <DyeingSpeed>0</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>0</MixerTemp> + <HeadZone1Temp>0</HeadZone1Temp> + <HeadZone2Temp>100</HeadZone2Temp> + <HeadZone3Temp>0</HeadZone3Temp> + <HeadZone4Temp>0</HeadZone4Temp> + <HeadZone5Temp>0</HeadZone5Temp> + <HeadZone6Temp>0</HeadZone6Temp> + <DryerAirFlow>0</DryerAirFlow> + <DryerZone1Temp>0</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>0</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>0</HeadZone7Temp> + <HeadZone8Temp>0</HeadZone8Temp> + <HeadZone9Temp>0</HeadZone9Temp> + <HeadZone10Temp>0</HeadZone10Temp> + <HeadZone11Temp>0</HeadZone11Temp> + <HeadZone12Temp>0</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Name</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>21</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="DancerItem"> + <ID>d3f502ea-76dd-48c3-b401-7f5fb7925a72</ID> + <Left>283</Left> + <Top>565.19469026548632</Top> + <Width>93</Width> + <Height>82.774336283185448</Height> + <Angle>0</Angle> + <ItemGuid>3EEE3B24-55DD-49F2-9339-F83F883BB908</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> + <Left>1382.875</Left> + <Top>116.79102777534303</Top> + <Width>212</Width> + <Height>190.06194690265767</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater1</HeaterType> + <SetPoint>250</SetPoint> + <CurrentValue>250</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>250</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> + <Left>1401.8333333333333</Left> + <Top>342.54486112328044</Top> + <Width>187</Width> + <Height>189.87168141593145</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater2</HeaterType> + <SetPoint>250</SetPoint> + <CurrentValue>250.04999999999998</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>250</SetPoint> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>379cc480-084f-4349-bb87-2c18b3c839e4</ID> + <Left>17</Left> + <Top>26.340707964601791</Top> + <Width>255</Width> + <Height>317.65929203539906</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>77e783e1-c5bb-4eac-8768-c9a28fc69c97</Guid> + <LastUpdated>2020-03-04T15:02:12.3146789Z</LastUpdated> + <Name>Process parameters 4</Name> + <DyeingSpeed>50</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>9</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>80</MixerTemp> + <HeadZone1Temp>80</HeadZone1Temp> + <HeadZone2Temp>80</HeadZone2Temp> + <HeadZone3Temp>90</HeadZone3Temp> + <HeadZone4Temp>100</HeadZone4Temp> + <HeadZone5Temp>110</HeadZone5Temp> + <HeadZone6Temp>120</HeadZone6Temp> + <DryerAirFlow>6</DryerAirFlow> + <DryerZone1Temp>180</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>30</DryerBufferLength> + <HeadAirFlow>6</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>135</HeadZone7Temp> + <HeadZone8Temp>135</HeadZone8Temp> + <HeadZone9Temp>135</HeadZone9Temp> + <HeadZone10Temp>135</HeadZone10Temp> + <HeadZone11Temp>140</HeadZone11Temp> + <HeadZone12Temp>140</HeadZone12Temp> + <RBlowerFlow>120</RBlowerFlow> + <RBlowerTemp>169</RBlowerTemp> + <LBlowerFlow>110</LBlowerFlow> + <LBlowerTemp>169</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Name</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 7 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 8 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 9 Temp</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 10 Temp</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 11 Temp</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 12 Temp</Name> + <Index>21</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Flow</Name> + <Index>22</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Temp</Name> + <Index>23</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Flow</Name> + <Index>24</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Temp</Name> + <Index>25</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>26</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>27</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>28</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>29</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>30</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>31</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>9b9fde94-ce8c-4401-8961-9d1d44ae2bcf</ID> + <Left>24</Left> + <Top>364.40265486725747</Top> + <Width>250</Width> + <Height>310.15486725663669</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>e7434743-ec18-4ae3-91a9-e25db760963d</Guid> + <LastUpdated>2020-03-04T15:03:44.3914568Z</LastUpdated> + <Name>Process parameters 5</Name> + <DyeingSpeed>0</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>0</MixerTemp> + <HeadZone1Temp>0</HeadZone1Temp> + <HeadZone2Temp>0</HeadZone2Temp> + <HeadZone3Temp>0</HeadZone3Temp> + <HeadZone4Temp>0</HeadZone4Temp> + <HeadZone5Temp>0</HeadZone5Temp> + <HeadZone6Temp>0</HeadZone6Temp> + <DryerAirFlow>5</DryerAirFlow> + <DryerZone1Temp>180</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>5</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>0</HeadZone7Temp> + <HeadZone8Temp>0</HeadZone8Temp> + <HeadZone9Temp>0</HeadZone9Temp> + <HeadZone10Temp>0</HeadZone10Temp> + <HeadZone11Temp>0</HeadZone11Temp> + <HeadZone12Temp>0</HeadZone12Temp> + <RBlowerFlow>120</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>120</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Name</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 7 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 8 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 9 Temp</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 10 Temp</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 11 Temp</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 12 Temp</Name> + <Index>21</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Flow</Name> + <Index>22</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Temp</Name> + <Index>23</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Flow</Name> + <Index>24</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Temp</Name> + <Index>25</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>26</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>27</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>28</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>29</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>30</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>31</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>82576c3f-1790-4074-97a3-65a12bd812c1</ID> + <Left>448</Left> + <Top>562.51327433628489</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>8a68cdf4-136b-4db4-bc4e-b3157790be6a</ID> + <Left>596</Left> + <Top>565.796460176992</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>a842a172-2661-4190-961d-af98e9eb63e5</ID> + <Left>554</Left> + <Top>9.1150442477876368</Top> + <Width>167</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>8979f624-9190-4eaf-9157-0a74be19c198</ID> + <Left>750</Left> + <Top>8.1017699115044479</Top> + <Width>161</Width> + <Height>62.823008849557539</Height> + <Angle>0</Angle> + <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>c2e5796d-c2cb-495c-becb-a52993a5729f</ID> + <Left>346</Left> + <Top>6.07522123893807</Top> + <Width>181</Width> + <Height>68.902654867256615</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>65283da8-5813-4769-a803-43c97cacab10</ID> + <Left>953</Left> + <Top>19.769911504424272</Top> + <Width>161</Width> + <Height>62.823008849557539</Height> + <Angle>0</Angle> + <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="BlowerItem"> + <ID>c667e35c-8a9d-4f6f-bd45-37bf90f05e2a</ID> + <Left>77</Left> + <Top>710.30088495575228</Top> + <Width>227</Width> + <Height>69.915929203539918</Height> + <Angle>0</Angle> + <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>b5524d9f-9c3a-4ef1-b9da-410335621cbb</ID> + <Left>780</Left> + <Top>346.53539823008856</Top> + <Width>188</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>0E3AB840-8B2C-4930-9208-E1EBB1F0134B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7ae4982d-57a1-4aef-a12e-bfd9507bee5f</ID> + <Left>798</Left> + <Top>446.84955752212392</Top> + <Width>194</Width> + <Height>81.061946902654824</Height> + <Angle>0</Angle> + <ItemGuid>A7064ADF-D57C-4F3C-ADBB-EE7606E2BD12</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>872b0d70-353a-4358-b47a-fa6a816cb3d7</ID> + <Left>585</Left> + <Top>344.50884955752218</Top> + <Width>172</Width> + <Height>86.128318584070826</Height> + <Angle>0</Angle> + <ItemGuid>A405F987-73B5-4B3C-93D5-C9F968BD1FF5</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>104fcafe-6135-4784-88ee-8cd3ca8732a2</ID> + <Left>596</Left> + <Top>450.90265486725667</Top> + <Width>172</Width> + <Height>72.955752212389314</Height> + <Angle>0</Angle> + <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="BlowerItem"> + <ID>1ef4079e-925c-41b6-a5b0-5710a7258526</ID> + <Left>318</Left> + <Top>344.50884955752218</Top> + <Width>227</Width> + <Height>69.915929203539918</Height> + <Angle>0</Angle> + <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="BlowerItem"> + <ID>d0bc8dfb-339b-477f-93cd-53d23f50930e</ID> + <Left>331</Left> + <Top>457.99557522123888</Top> + <Width>227</Width> + <Height>69.915929203539918</Height> + <Angle>0</Angle> + <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Thread</Name> + <Items> + <TechItem xsi:type="MonitorItem"> + <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> + <Left>1530</Left> + <Top>193.19911504424795</Top> + <Width>169</Width> + <Height>181.37610619469029</Height> + <Angle>0</Angle> + <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>68eef943-2151-4df5-be61-044c3865606e</ID> + <Left>1172</Left> + <Top>145.78318584070678</Top> + <Width>175</Width> + <Height>167.827433628319</Height> + <Angle>0</Angle> + <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> + <Left>988</Left> + <Top>143.32300884955998</Top> + <Width>190</Width> + <Height>167.09734513274049</Height> + <Angle>0</Angle> + <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> + <Left>817</Left> + <Top>142.42035398230098</Top> + <Width>169</Width> + <Height>168.31858407079625</Height> + <Angle>0</Angle> + <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> + <Left>922</Left> + <Top>516.43362831858417</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1460</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> + <Left>465</Left> + <Top>515.420353982301</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1516</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> + <Left>15</Left> + <Top>518.46017699115032</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> + <Left>12</Left> + <Top>13.849557522123973</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1273</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> + <Left>860</Left> + <Top>-24.18584070796669</Top> + <Width>345</Width> + <Height>169.21681415929209</Height> + <Angle>0</Angle> + <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>514</Duration> + <Min>0</Min> + <Max>100000</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> + <Left>19</Left> + <Top>324.14159292035305</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> + <Left>474</Left> + <Top>320.03097345132551</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> + <Left>928</Left> + <Top>321.64601769912122</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> + <Left>1303</Left> + <Top>34.380530973454768</Top> + <Width>176</Width> + <Height>83.05309734512457</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> + <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> + <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> + <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> + <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> + <string>9ADF7823-B293-4275-9999-F62474D246AA</string> + <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> + <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="ThreadMotionItem"> + <ID>51e66b20-f2a9-4f32-9e4e-ba06a0adccfc</ID> + <Left>453</Left> + <Top>19.247787610619469</Top> + <Width>346</Width> + <Height>195.56194690265488</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <Speed>40</Speed> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Dispensers</Name> + <Items> + <TechItem xsi:type="DispenserItem"> + <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> + <Left>1322.1428571428571</Left> + <Top>214.15929203538531</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>20</Speed> + <DisplayName>Dispenser 1</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> + <Left>1149</Left> + <Top>218.48230088495342</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> + <ColorNumber>-16724737</ColorNumber> + <Speed>20</Speed> + <DisplayName>Dispenser 2</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> + <Left>959</Left> + <Top>210.32743362830422</Top> + <Width>156</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> + <ColorNumber>-65325</ColorNumber> + <Speed>20</Speed> + <DisplayName>Dispenser 3</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> + <Left>775</Left> + <Top>206.42920353980952</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> + <ColorNumber>-524544</ColorNumber> + <Speed>20</Speed> + <DisplayName>Dispenser 4</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> + <Left>585</Left> + <Top>208.47345132741418</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> + <ColorNumber>-2108246</ColorNumber> + <Speed>1000</Speed> + <DisplayName>Dispenser 5</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> + <Left>372</Left> + <Top>216.75221238937439</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> + <ColorNumber>-263685</ColorNumber> + <Speed>20</Speed> + <DisplayName>Dispenser 6</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> + <Left>217</Left> + <Top>211.63716814158107</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> + <ColorNumber>-723724</ColorNumber> + <Speed>20</Speed> + <DisplayName>Dispenser 7</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> + <Left>45</Left> + <Top>216.04867256635521</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> + <ColorNumber>-724238</ColorNumber> + <Speed>13</Speed> + <DisplayName>Dispenser 8</DisplayName> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> + <Left>1305</Left> + <Top>31.606194690259713</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-15856114</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> + <Left>1127</Left> + <Top>32.535398230081626</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-15293470</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> + <Left>955</Left> + <Top>32.61946902653176</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-1570857</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> + <Left>774</Left> + <Top>31.960176991142362</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-1379575</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>3980e685-73b3-4af1-9593-9235be147322</ID> + <Left>596</Left> + <Top>32.889380530964274</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-7763381</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> + <Left>424</Left> + <Top>32.973451327414409</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> + <Left>252</Left> + <Top>31.703539823006281</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> + <Left>80</Left> + <Top>31.787610619456416</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> + <ColorNumber>-2186185</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> + <Left>28.22352941176473</Left> + <Top>682.03174474303751</Top> + <Width>247</Width> + <Height>122.24778761061873</Height> + <Angle>0</Angle> + <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> + <Left>235.16470588235291</Left> + <Top>699.99460095802579</Top> + <Width>200</Width> + <Height>94.15929203539747</Height> + <Angle>0</Angle> + <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ControllerItem"> + <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> + <Left>140</Left> + <Top>867.73893805310092</Top> + <Width>160</Width> + <Height>85.49115044247776</Height> + <Angle>0</Angle> + <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <OptimalRangeMinimum>0</OptimalRangeMinimum> + <OptimalRangeMaximum>70</OptimalRangeMaximum> + <UpdateInterval>10</UpdateInterval> + <IsSetToDefault>true</IsSetToDefault> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> + <Left>507</Left> + <Top>792.77433628318749</Top> + <Width>219</Width> + <Height>125.75221238938025</Height> + <Angle>0</Angle> + <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> + <ColorNumber>-16777216</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> + <Left>1303</Left> + <Top>475.87168141593065</Top> + <Width>160</Width> + <Height>124.6504424778754</Height> + <Angle>0</Angle> + <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> + <ColorNumber>-15856114</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MultiGraphItem"> + <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> + <Left>370</Left> + <Top>781.46902654866153</Top> + <Width>710</Width> + <Height>401.24778761063465</Height> + <Angle>0</Angle> + <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> + <ColorNumber>0</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>1956</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> + <Left>1128</Left> + <Top>482.80530973451141</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> + <ColorNumber>-15293470</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> + <Left>968</Left> + <Top>481.35398230088504</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> + <ColorNumber>-1570857</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> + <Left>766</Left> + <Top>476.07964601769811</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> + <ColorNumber>-1379575</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> + <Left>586</Left> + <Top>474.38938053097161</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> + <ColorNumber>-7763381</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> + <Left>391</Left> + <Top>474.87168141592781</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> + <Left>226</Left> + <Top>471.66814159292005</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> + <Left>69</Left> + <Top>473.97787610619389</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> + <Left>1130</Left> + <Top>624.9557522123913</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> + <Left>969</Left> + <Top>625.95575221239</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> + <Left>775</Left> + <Top>623.66814159292062</Top> + <Width>144</Width> + <Height>82.535398230087083</Height> + <Angle>0</Angle> + <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> + <Left>588</Left> + <Top>625.06637168141322</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> + <Left>1310</Left> + <Top>628.69469026548632</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> + <Left>20.870588235294122</Left> + <Top>784.26605504587133</Top> + <Width>327</Width> + <Height>108.53097345133028</Height> + <Angle>0</Angle> + <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> + <Left>1065</Left> + <Top>788.41592920352355</Top> + <Width>370</Width> + <Height>362.10619469026585</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>1426</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> + <Left>628</Left> + <Top>765.4469026548752</Top> + <Width>394</Width> + <Height>372.88495575221242</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1282</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> + <Left>1069</Left> + <Top>698.04867256637226</Top> + <Width>382</Width> + <Height>136.79203539823016</Height> + <Angle>0</Angle> + <ItemGuid>7F9C5DE0-9E24-494D-841F-976DB440DBFD</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> + <Left>231</Left> + <Top>624.06637168142413</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> + <Left>77</Left> + <Top>624.46460176991513</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> + <ColorNumber>-2186185</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Thread insertion</Name> + <Items> + <TechItem xsi:type="MotorItem"> + <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> + <Left>25</Left> + <Top>22.761061946902203</Top> + <Width>247</Width> + <Height>172.25663716814159</Height> + <Angle>0</Angle> + <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> + <Left>355</Left> + <Top>20.592920353981697</Top> + <Width>260</Width> + <Height>153.00442477876106</Height> + <Angle>0</Angle> + <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> + <Left>694</Left> + <Top>19.367256637167998</Top> + <Width>217</Width> + <Height>155.26106194690203</Height> + <Angle>0</Angle> + <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> + <Left>364</Left> + <Top>222.16814159291846</Top> + <Width>240</Width> + <Height>172.30973451327589</Height> + <Angle>0</Angle> + <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> + <Left>29</Left> + <Top>241.34955752210982</Top> + <Width>263</Width> + <Height>174.296460176989</Height> + <Angle>0</Angle> + <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>400</Speed> + </TechItem> + <TechItem xsi:type="ThreadMotionItem"> + <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> + <Left>1168</Left> + <Top>47.305309734517039</Top> + <Width>304</Width> + <Height>167.26548672566202</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <Speed>50</Speed> + </TechItem> + <TechItem xsi:type="BreakSensorItem"> + <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> + <Left>1258</Left> + <Top>277.55752212389069</Top> + <Width>240</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> + <Left>695</Left> + <Top>223.44247787610908</Top> + <Width>228</Width> + <Height>175.0353982300901</Height> + <Angle>0</Angle> + <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>83.833754740833143</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> + <Left>29</Left> + <Top>572.89380530973028</Top> + <Width>221</Width> + <Height>176.93805309734751</Height> + <Angle>0</Angle> + <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1000</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> + <Left>599</Left> + <Top>578.80973451326713</Top> + <Width>240</Width> + <Height>157.80088495575205</Height> + <Angle>0</Angle> + <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>5</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> + <Left>1037</Left> + <Top>247.03097345133062</Top> + <Width>240</Width> + <Height>172.30973451327589</Height> + <Angle>0</Angle> + <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> + <Left>548</Left> + <Top>418.71652683599893</Top> + <Width>269</Width> + <Height>127.67256637168134</Height> + <Angle>0</Angle> + <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> + <Left>900</Left> + <Top>580.00442477876311</Top> + <Width>227</Width> + <Height>145.08849557522183</Height> + <Angle>0</Angle> + <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>30</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> + <Left>1182</Left> + <Top>572.30088495575171</Top> + <Width>227</Width> + <Height>145.08849557522183</Height> + <Angle>0</Angle> + <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>30</Speed> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>bba24461-e18d-497a-b85d-808668d0c750</ID> + <Left>892</Left> + <Top>457.57079646017365</Top> + <Width>170</Width> + <Height>87.999999999997613</Height> + <Angle>0</Angle> + <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>9ccdbff6-031d-4364-8732-daade6b88551</ID> + <Left>1062</Left> + <Top>452.95575221238948</Top> + <Width>170</Width> + <Height>87.999999999997613</Height> + <Angle>0</Angle> + <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>22bb90e5-f05c-4a47-925e-516a252de2ac</ID> + <Left>324</Left> + <Top>546.82743362833332</Top> + <Width>213</Width> + <Height>211.8141592920241</Height> + <Angle>0</Angle> + <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>5</Speed> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Head graphs</Name> + <Items> + <TechItem xsi:type="SingleGraphItem"> + <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> + <Left>683</Left> + <Top>6.8230088495575387</Top> + <Width>585</Width> + <Height>254.03097345132755</Height> + <Angle>0</Angle> + <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> + <Left>536</Left> + <Top>184.21238938053108</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> + <Left>533</Left> + <Top>22.663716814159159</Top> + <Width>141</Width> + <Height>109.433628318584</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater1</HeaterType> + <SetPoint>250</SetPoint> + <CurrentValue>249.95</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>250</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> + <Left>5.75</Left> + <Top>316.7892753877166</Top> + <Width>516</Width> + <Height>326.98672566371658</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> + <Left>375.66666666666663</Left> + <Top>902.19714360816624</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> + <Left>523.04166666666652</Left> + <Top>895.90015771488663</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater2</HeaterType> + <SetPoint>250</SetPoint> + <CurrentValue>249.98999999999998</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>250</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> + <Left>5</Left> + <Top>5.0619469026551087</Top> + <Width>518</Width> + <Height>295.5752212389379</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> + <Left>536</Left> + <Top>334.00442477876118</Top> + <Width>137</Width> + <Height>105.3805309734513</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater2</HeaterType> + <SetPoint>250</SetPoint> + <CurrentValue>249.98999999999998</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>250</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> + <Left>684</Left> + <Top>264.46017699115009</Top> + <Width>584</Width> + <Height>252.004424778761</Height> + <Angle>0</Angle> + <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> + <Left>1279</Left> + <Top>61.871681415929345</Top> + <Width>128</Width> + <Height>99.57522123893591</Height> + <Angle>0</Angle> + <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> + <Left>1415</Left> + <Top>526.52654867256626</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone3</HeaterType> + <SetPoint>85</SetPoint> + <CurrentValue>84.94</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>85</SetPoint> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> + <Left>1283</Left> + <Top>538.11061946902646</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> + <Left>1411</Left> + <Top>25.969026548672616</Top> + <Width>107</Width> + <Height>165.16371681415916</Height> + <Angle>0</Angle> + <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone1</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>80.02</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> + <Left>1284</Left> + <Top>298.97787610619486</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> + <Left>1415</Left> + <Top>286.38053097345141</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone2</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>79</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> + <Left>684</Left> + <Top>518.79203539822981</Top> + <Width>586</Width> + <Height>276.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> + <Left>536</Left> + <Top>482.38053097345153</Top> + <Width>143</Width> + <Height>92.482300884953418</Height> + <Angle>0</Angle> + <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> + <Left>5.7499999999999858</Left> + <Top>866.06435643564362</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> + <Left>644.29166666666674</Left> + <Top>874.00000000000011</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> + <Left>1010.1666666666667</Left> + <Top>895.60597564181194</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> + <Left>1161.708333333333</Left> + <Top>885.907999649522</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater1</HeaterType> + <SetPoint>250</SetPoint> + <CurrentValue>249.95</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>250</SetPoint> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>waste</Name> + <Items> + <TechItem xsi:type="DigitalOutItem"> + <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> + <Left>118</Left> + <Top>74.380530973451243</Top> + <Width>339</Width> + <Height>184.4159292035398</Height> + <Angle>0</Angle> + <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> + <Left>468</Left> + <Top>80.336283185839477</Top> + <Width>280</Width> + <Height>166.17699115044252</Height> + <Angle>0</Angle> + <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> + <Left>873</Left> + <Top>63.831858407079665</Top> + <Width>174</Width> + <Height>133.75221238938059</Height> + <Angle>0</Angle> + <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> + <Left>1070</Left> + <Top>70.106194690265909</Top> + <Width>221</Width> + <Height>123.61946902654864</Height> + <Angle>0</Angle> + <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> + <Left>877</Left> + <Top>248.24778761061947</Top> + <Width>186</Width> + <Height>126.65929203539827</Height> + <Angle>0</Angle> + <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> + <Left>897</Left> + <Top>358.69469026548683</Top> + <Width>147</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Waste lower presence</Text> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> + <Left>1112</Left> + <Top>253.66814159291806</Top> + <Width>186</Width> + <Height>126.65929203539827</Height> + <Angle>0</Angle> + <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> + <Left>1143</Left> + <Top>366.78318584070507</Top> + <Width>147</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Waste middle presence</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> + <Left>151</Left> + <Top>271.55309734513281</Top> + <Width>200</Width> + <Height>63.836283185840671</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>pump</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> + <Left>504</Left> + <Top>283.71238938053096</Top> + <Width>192</Width> + <Height>67.88938053097354</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>valve</Text> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID> + <Left>76</Left> + <Top>313.99115044248094</Top> + <Width>356</Width> + <Height>208.10619469026472</Height> + <Angle>0</Angle> + <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>6cbf28b4-4e53-4aae-9c6e-a506f8538f51</ID> + <Left>414</Left> + <Top>342.61504424777644</Top> + <Width>187</Width> + <Height>142.7477876106214</Height> + <Angle>0</Angle> + <ItemGuid>31000237-0c0e-40f0-a400-1d8055fa230e</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>e45af3fe-dda1-49a8-ba8e-183c98de3952</ID> + <Left>642</Left> + <Top>437.73008849557533</Top> + <Width>181</Width> + <Height>95.247787610619469</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>c29a04b8-eeec-4a16-91b4-d1c63dddb868</ID> + <Left>853</Left> + <Top>443.80973451327435</Top> + <Width>467</Width> + <Height>286.75663716814171</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>10</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f93bb87b-d029-42af-99bd-57db41ed1329</ID> + <Left>55</Left> + <Top>576.54867256637181</Top> + <Width>190</Width> + <Height>106.53982300885139</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5dff5069-ad45-4ed2-a2d2-e58121c4de56</ID> + <Left>263</Left> + <Top>529.49557522123735</Top> + <Width>467</Width> + <Height>286.75663716814171</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>10</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>disp</Name> + <Items> + <TechItem xsi:type="SingleGraphItem"> + <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> + <Left>123</Left> + <Top>128.33628318584061</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> + <Left>880</Left> + <Top>158.81415929204155</Top> + <Width>442</Width> + <Height>241.88495575221771</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> + <Left>1055</Left> + <Top>14.181415929203524</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Y</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> + <Left>384</Left> + <Top>23.991150442480944</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>C</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> + <Left>121</Left> + <Top>-8.8495575221214722</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> + <Left>839</Left> + <Top>-4.7079646017762684</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> + <Left>1276</Left> + <Top>22.287610619469035</Top> + <Width>187</Width> + <Height>102.34070796460179</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>D023F15D-3555-48E9-A9E9-5DF99F60D791</string> + <string>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</string> + <string>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</string> + <string>FE0D0A56-5795-4C5A-8E09-939FBB35C441</string> + <string>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</string> + <string>D7585119-4A42-4370-8F1E-F3E62553E588</string> + <string>098F7CAB-030C-46B0-B2B8-A85AF2253032</string> + <string>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> + <Left>587</Left> + <Top>5.0619469026548813</Top> + <Width>155</Width> + <Height>131.72566371681415</Height> + <Angle>0</Angle> + <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + <DisplayName>Dispenser 1</DisplayName> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> + <Left>131</Left> + <Top>552.94690265486338</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> + <Left>399</Left> + <Top>455.67256637168265</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>K</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> + <Left>145</Left> + <Top>409.52212389380446</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> + <Left>604</Left> + <Top>561.16371681414739</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> + <Left>832</Left> + <Top>440.91150442477635</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>M</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> + <Left>633</Left> + <Top>434.0132743362783</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>be584f80-3250-494c-87fc-250d6deae051</ID> + <Left>1045</Left> + <Top>559.4070796459921</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> + <Left>1056</Left> + <Top>435.43805309733875</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> + <Left>1304</Left> + <Top>448.0884955752224</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>TI</Text> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> + <Left>588</Left> + <Top>317.1504424778762</Top> + <Width>283</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> + <Left>1363</Left> + <Top>384.02654867256643</Top> + <Width>156</Width> + <Height>94.234513274336337</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> + <Left>767</Left> + <Top>362.74778761061958</Top> + <Width>283</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> + <Left>309</Left> + <Top>13.168141592920392</Top> + <Width>112</Width> + <Height>107.40707964601768</Height> + <Angle>0</Angle> + <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> + <Left>1180</Left> + <Top>60.7920353982301</Top> + <Width>102</Width> + <Height>88.1548672566372</Height> + <Angle>0</Angle> + <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> + <Left>1258</Left> + <Top>463.06194690265494</Top> + <Width>88</Width> + <Height>75.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> + <Left>810</Left> + <Top>462.04867256637175</Top> + <Width>77</Width> + <Height>80.048672566371636</Height> + <Angle>0</Angle> + <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> + <Left>336</Left> + <Top>428.61061946902663</Top> + <Width>95</Width> + <Height>96.261061946902657</Height> + <Angle>0</Angle> + <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Priming</Name> + <Items> + <TechItem xsi:type="MonitorItem"> + <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> + <Left>808</Left> + <Top>155.02654867256638</Top> + <Width>219</Width> + <Height>200.62831858407088</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> + <Left>832</Left> + <Top>451.91592920353986</Top> + <Width>332</Width> + <Height>326.27433628318596</Height> + <Angle>0</Angle> + <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 2</DisplayName> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> + <Left>154</Left> + <Top>131.72123893805315</Top> + <Width>474</Width> + <Height>410.37610619469024</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1942</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> + <Left>243</Left> + <Top>595.80088495575228</Top> + <Width>497</Width> + <Height>189.48230088495575</Height> + <Angle>0</Angle> + <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> + <Left>1291</Left> + <Top>584.65486725663732</Top> + <Width>200</Width> + <Height>171.24336283185835</Height> + <Angle>0</Angle> + <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + </Tabs> + <SelectedTabIndex>0</SelectedTabIndex> +</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/update thread PID during run.cs b/Software/Stubs Collection/stubs/update thread PID during run.cs new file mode 100644 index 000000000..b312440e5 --- /dev/null +++ b/Software/Stubs Collection/stubs/update thread PID during run.cs @@ -0,0 +1,57 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Hardware; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + +StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest(); +/*FEEDER*/ +HardwarePidControl hardwarePidControl = new HardwarePidControl(); +hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; +//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; +//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; +hardwarePidControl.IntegralTime = 0; +hardwarePidControl.DerivativeTime = 0; +hardwarePidControl.ProportionalGain = 0; +hardwarePidControl.Epsilon = 0; +// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25 +stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; +var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); + +/*Puller*/ +/* +//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; +hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; +//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; +hardwarePidControl.IntegralTime = 0; +hardwarePidControl.DerivativeTime = 0; +hardwarePidControl.ProportionalGain = 0; +hardwarePidControl.Epsilon = 0; +// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25 +stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; +response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); +*/ +/*WINDER*/ +/* +//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; +//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; +hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; +hardwarePidControl.IntegralTime = 0; +hardwarePidControl.DerivativeTime = 0; +hardwarePidControl.ProportionalGain = 0; +hardwarePidControl.Epsilon = 0; +// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25 +stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; +response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); +*/ +}
\ No newline at end of file |
