diff --git a/src/TcoCognexVision/README.md b/src/TcoCognexVision/README.md index d9cd10c12..d8368640b 100644 --- a/src/TcoCognexVision/README.md +++ b/src/TcoCognexVision/README.md @@ -203,14 +203,19 @@ and where `DesignerUserData` are (here may be placed customized data (what proje ### Export symbols for visions purposes -If filter field is empty all data wil be generated. If you would to ganerate only specific data you may apply filter(see picture below). +If filter field is empty all data wil be generated. If you would to ganerate only specific data you may apply filter or tail filter.(see picture below). + + +MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.AnalogInspector._data.DetectedStatus + + ![alt text](assets/designerExportDataFilter.png) ![alt text](assets/designerExportDialog.png) -Final data ready to import into designer will be: +Final data suitable for import into designer will be: ``` -MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.DigitalInspector._data.DetectedStatus;System.Boolean; -MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.DataInspector._data.DetectedStatus;System.String; +MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.AnalogInspector._data.RequiredMin;System.Double; +MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.AnalogInspector._data.RequiredMin;System.Double; MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.AnalogInspector._data.DetectedStatus;System.Double; ``` \ No newline at end of file diff --git a/src/TcoCognexVision/assets/designerExportDataFilter.png b/src/TcoCognexVision/assets/designerExportDataFilter.png index ab715bfca..b14641f20 100644 Binary files a/src/TcoCognexVision/assets/designerExportDataFilter.png and b/src/TcoCognexVision/assets/designerExportDataFilter.png differ diff --git a/src/TcoCognexVision/assets/designerExportDialog.png b/src/TcoCognexVision/assets/designerExportDialog.png index a022f103f..b530c87d6 100644 Binary files a/src/TcoCognexVision/assets/designerExportDialog.png and b/src/TcoCognexVision/assets/designerExportDialog.png differ diff --git a/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.Designer.cs b/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.Designer.cs index b89121570..7ee495292 100644 --- a/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.Designer.cs +++ b/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.Designer.cs @@ -69,15 +69,6 @@ internal static string ____PartId___ { } } - /// - /// Looks up a localized string similar to Trigger Date . - /// - internal static string ____Trigger_Date___ { - get { - return ResourceManager.GetString("____Trigger_Date___", resourceCulture); - } - } - /// /// Looks up a localized string similar to Acknowledge inspection results. /// @@ -573,6 +564,15 @@ internal static string ___Error_detected__ { } } + /// + /// Looks up a localized string similar to Error time is lower than timeout. Please check config!. + /// + internal static string ___Error_time_is_lower_than_timeout__Please_check_config___ { + get { + return ResourceManager.GetString("___Error_time_is_lower_than_timeout__Please_check_config___", resourceCulture); + } + } + /// /// Looks up a localized string similar to ErrorMsg. /// @@ -1417,6 +1417,15 @@ internal static string ___Test_run_ready__ { } } + /// + /// Looks up a localized string similar to Timeout[ms]. + /// + internal static string ___Timeout_ms___ { + get { + return ResourceManager.GetString("___Timeout_ms___", resourceCulture); + } + } + /// /// Looks up a localized string similar to Trigger. /// diff --git a/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.resx b/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.resx index b5c944f84..1b96e8231 100644 --- a/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.resx +++ b/src/TcoCognexVision/src/TcoCognexVisionConnector/Properties/Localizations.resx @@ -252,6 +252,9 @@ IF Execute() THEN _varInfo :=__VARINFO(inoIoData); Messenger.Programming(_sb.Clear().Append('Invalid reference: + + Error time is lower than timeout. Please check config! + Trigger! @@ -558,9 +561,6 @@ IF Execute() THEN GeneralResult FAIL - - Trigger Date - SystemOnline @@ -585,12 +585,15 @@ IF Execute() THEN Trigger Counter - - ErrorMsg + + Error LiveBit + + ErrorMsg + TriggerTimeout @@ -609,6 +612,9 @@ IF Execute() THEN ClearResults + + Timeout[ms] + PartId @@ -693,9 +699,6 @@ IF Execute() THEN Test run ready - - Error - Error code diff --git a/src/TcoCognexVision/src/TcoCognexVisionConnector/TcoDesigner/TcoDesigner.cs b/src/TcoCognexVision/src/TcoCognexVisionConnector/TcoDesigner/TcoDesigner.cs new file mode 100644 index 000000000..1a43142e6 --- /dev/null +++ b/src/TcoCognexVision/src/TcoCognexVisionConnector/TcoDesigner/TcoDesigner.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TcoCognexVisionConnector.TcoDesigner +{ + public partial class TcoDesigner + { + + //public ObservableCollection Positions { get { return Extensions.ToObservableCollection(((IVortexObject)_positions).GetChildren().OfType()); } } + + } +} diff --git a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.Designer.cs b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.Designer.cs index dd4389f02..83a6ecd71 100644 --- a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.Designer.cs +++ b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.Designer.cs @@ -141,6 +141,15 @@ public static string SoftEvent { } } + /// + /// Looks up a localized string similar to Tail. + /// + public static string Tail { + get { + return ResourceManager.GetString("Tail", resourceCulture); + } + } + /// /// Looks up a localized string similar to Tasks. /// diff --git a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.resx b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.resx index 3f68c392a..6e265d50e 100644 --- a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.resx +++ b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.resx @@ -144,6 +144,9 @@ SoftEvent + + Tail + Tasks diff --git a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.sk-Sk.resx b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.sk-Sk.resx index d59b135a5..de1682108 100644 --- a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.sk-Sk.resx +++ b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/Properties/strings.sk-Sk.resx @@ -144,6 +144,9 @@ SoftEvent + + Požadované premenné + Ulohy diff --git a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xServiceView.xaml b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xServiceView.xaml index f535e4e11..4a98463f0 100644 --- a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xServiceView.xaml +++ b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xServiceView.xaml @@ -86,6 +86,8 @@ + + diff --git a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xViewModel.cs b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xViewModel.cs index 9c47d33fb..9f32e19dc 100644 --- a/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xViewModel.cs +++ b/src/TcoCognexVision/src/Wpf/TcOpen.Inxton.TcoCognexVision.Wpf/TcoDesigner/v_2_x_x/TcoDesigner_v_2_x_xViewModel.cs @@ -7,13 +7,13 @@ using System.Linq; using System.Collections.Generic; using System; -using TcOpen.Inxton.Input; using RelayCommand = TcOpen.Inxton.Input.RelayCommand; using Microsoft.Win32; using System.Windows; using TcoCore; using StringBuilder = System.Text.StringBuilder; + namespace TcoCognexVision { public class TcoDesigner_v_2_x_xViewModel : RenderableViewModel @@ -34,7 +34,7 @@ public TcoDesigner_v_2_x_xViewModel() : base() private void GenerateGenericSymbols() { - GetSymbols(this.Component._genericData, Filter, ref _sb); + GetSymbols(this.Component._genericData, Filter,TailFilter, ref _sb); try { @@ -61,7 +61,7 @@ private void GenerateGenericSymbols() private void GenerateSpecificSymbols() { _sb.Clear(); - GetSymbols(this.Component._specificData,Filter,ref _sb ); + GetSymbols(this.Component._specificData,Filter,TailFilter,ref _sb ); try { @@ -85,36 +85,55 @@ private void GenerateSpecificSymbols() } } - private void GetSymbols(IVortexObject obj, string filter, ref StringBuilder sb) + private void GetSymbols(IVortexObject obj, string symbolFilter,string tailFilter, ref StringBuilder sb) { - var splitted = filter.Split(';'); - + var symbolSplited = symbolFilter.Split(';',','); + var tailSplited = tailFilter.Split(';', ','); + foreach (var item in obj.GetValueTags()) { - if (string.IsNullOrEmpty(filter) && !item.Symbol.Contains(Messenger)) - { - + if (string.IsNullOrEmpty(symbolFilter) && !item.Symbol.Contains(Messenger)) sb.AppendLine($"{item.Symbol};{((dynamic)item).Cyclic.GetType().ToString()}; ;"); - } else - foreach (var split in splitted) + if (!item.Symbol.Contains(Messenger)) { - if (item.Symbol.Contains(split) && !item.Symbol.Contains(Messenger)) + + + var isThere = true; + foreach (var split in symbolSplited) { + if (!item.Symbol.Contains(split)) + { - sb.AppendLine($"{item.Symbol};{((dynamic)item).Cyclic.GetType().ToString()};"); + isThere = false; + break; + } + } + if (isThere) + { + if(string.IsNullOrEmpty(tailFilter) && !item.Symbol.Contains(Messenger)) + sb.AppendLine($"{item.Symbol};{((dynamic)item).Cyclic.GetType().ToString()};"); + else + foreach (var tail in tailSplited) + { + if(item.Symbol.Contains(tail)) + sb.AppendLine($"{item.Symbol};{((dynamic)item).Cyclic.GetType().ToString()};"); + { + + } + } + } } - } foreach (var item in obj.GetChildren()) { - GetSymbols(item, filter,ref _sb); + GetSymbols(item, symbolFilter, tailFilter,ref _sb); } } public IEnumerable Tasks @@ -137,6 +156,7 @@ public override object Model } public string Filter { get; set; } = string.Empty; + public string TailFilter { get; set; } = string.Empty; public RelayCommand GenerateSpecificSymbolsCommand { get; private set; } public RelayCommand GenerateGenericSymbolsCommand { get; private set; } } diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerGenericResults_v_2_x_x.TcDUT b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerGenericResults_v_2_x_x.TcDUT index 6434f2145..cef57b31f 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerGenericResults_v_2_x_x.TcDUT +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerGenericResults_v_2_x_x.TcDUT @@ -9,8 +9,6 @@ STRUCT ResultPass : BOOL; {attribute addProperty Name "<#GeneralResult FAIL#>"} ResultFail : BOOL; - {attribute addProperty Name "<# Trigger Date #>"} - TriggerDate : DATE; diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPcToPlc_v_2_x_x.TcDUT b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPcToPlc_v_2_x_x.TcDUT index 14e67c67e..f52629921 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPcToPlc_v_2_x_x.TcDUT +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPcToPlc_v_2_x_x.TcDUT @@ -26,7 +26,8 @@ STRUCT {attribute addProperty Name "<#Trigger Counter#>"} TriggerCounter : UDINT; - {attribute addProperty Name "<#ErrorMsg#>"} + {attribute addProperty Name "<#Error#>"} + Error : BOOL; {attribute addProperty Name "<#LiveBit#>"} LiveBit : BOOL; @@ -44,7 +45,6 @@ STRUCT InspectionResults : TcoDesignerGenericResults_v_2_x_x; - END_STRUCT END_TYPE ]]> diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPlcToPc_v_2_x_x.TcDUT b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPlcToPc_v_2_x_x.TcDUT index af4d88077..95fa84373 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPlcToPc_v_2_x_x.TcDUT +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Structs/TcoDesignerPlcToPc_v_2_x_x.TcDUT @@ -20,7 +20,10 @@ STRUCT {attribute addProperty Name "<#ClearResults#>"} ClearResults : BOOL; - + + {attribute addProperty Name "<#Timeout[ms]#>"} + Timeout : UINT; + {attribute addProperty Name "<# PartId #>"} PartId : STRING; //napr. DMC Code diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerClearInspectionResults_v_2_x_x.TcPOU b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerClearInspectionResults_v_2_x_x.TcPOU index c1237c0ef..90bea372b 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerClearInspectionResults_v_2_x_x.TcPOU +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerClearInspectionResults_v_2_x_x.TcPOU @@ -116,7 +116,7 @@ END_VAR CallTimers(TRUE); - THIS^.ThrowWhen(_errorTimer.Q OR THIS^.inoIoData.PcToPlc.TriggerTimeout OR THIS^.inoIoData.PcToPlc.Error ); + THIS^.ThrowWhen(_errorTimer.Q OR THIS^.inoIoData.PcToPlc.Error ); END_IF ]]> diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerTrigger_v_2_x_x.TcPOU b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerTrigger_v_2_x_x.TcPOU index c59b05a74..26f114e9f 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerTrigger_v_2_x_x.TcPOU +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/Tasks/TcoDesignerTrigger_v_2_x_x.TcPOU @@ -48,9 +48,11 @@ IF Execute() THEN ELSIF NOT __ISVALIDREF(inoStatus) THEN _varInfo :=__VARINFO(inoStatus); Messenger.Programming(_sb.Clear().Append('<#Invalid reference: #>').Append(_varInfo.Symbol).ToString()).Pin(); -// ELSIF NOT __ISVALIDREF(inoResults) THEN -// _varInfo :=__VARINFO(inoResults); -// Messenger.Programming(_sb.Clear().Append('<#Invalid reference: #>').Append(_varInfo.Symbol).ToString()).Pin(); + + ELSIF inTriggerType = eTcoDesignerTriggerType.TriggerWithTimeout + AND inoConfig.ErrorTime < inoConfig.TriggerTimemout THEN + Messenger.Error(_sb.Clear().Append('<#Error time is lower than timeout. Please check config!#>').ToString()).Pin(); + ELSE _progress := _progress + 1; CallTimers(FALSE); @@ -62,6 +64,11 @@ IF Execute() THEN IF _progress = 1 THEN IF inTriggerType = eTcoDesignerTriggerType.TriggerFast THEN _progress := _progress + 1; + ELSIF inTriggerType = eTcoDesignerTriggerType.TriggerWithTimeout THEN + inoIoData.PlcToPc.Timeout:=TIME_TO_UINT( inoConfig.TriggerTimemout); + IF _clearResultsTask.Invoke().Done THEN + _progress := _progress + 1; + END_IF; ELSIF _clearResultsTask.Invoke().Done THEN _progress := _progress + 1; END_IF @@ -103,7 +110,9 @@ IF Execute() THEN CallTimers(TRUE); - THIS^.ThrowWhen(_errorTimer.Q OR NOT(THIS^.inoIoData.PcToPlc.TriggerTimeout XOR inTriggerType = eTcoDesignerTriggerType.TriggerWithTimeout) OR THIS^.inoIoData.PcToPlc.Error ); + THIS^.ThrowWhen(_errorTimer.Q OR THIS^.inoIoData.PcToPlc.Error + OR (inTriggerType = eTcoDesignerTriggerType.TriggerWithTimeout AND THIS^.inoIoData.PcToPlc.TriggerTimeout) ); + END_IF ]]> @@ -173,6 +182,7 @@ METHOD PROTECTED OnError ]]> '; +inoIoData.PlcToPc.Timeout:=0; ]]> diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/TcoDesigner_v_2_x_x.TcPOU b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/TcoDesigner_v_2_x_x.TcPOU index e4ac1f58c..5bf168793 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/TcoDesigner_v_2_x_x.TcPOU +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVision/POUs/TcoDesigner/TcoDesigner_v_2_x_x.TcPOU @@ -14,6 +14,8 @@ VAR {attribute addProperty Name "<#Status#>"} _status : TcoDesignerStatus_v_2_x_x; + _triggerType: eTcoDesignerTriggerType; + _internalLiveBit: BOOL; END_VAR @@ -57,11 +59,11 @@ END_VAR ]]> T#0MS; - +_timerConnection(In:=_internalLiveBit XOR _status.SignalStatus.LiveBit ,PT:=_config.ConnectionTimemout); +_status.ClientConnected:= NOT _timerConnection.Q;//_timerConnection.ET<_timerConnection.PT AND _timerConnection.ET<>T#0MS; +_internalLiveBit:=NOT _status.SignalStatus.LiveBit; IF NOT _status.ClientConnected THEN THIS^._status.ActionDescription := '<#Vision system is not responding via Ads. Check connection with Cognex Designer!#>'; THIS^.Messenger.Error(_status.ActionDescription).Pin(); @@ -70,8 +72,8 @@ END_IF //*************RESTORE******************** -_taskEnabled := TRUE; -_restoreTask.Enabled := _taskEnabled; + +_restoreTask.Enabled := TRUE; IF _restoreTask.Execute() THEN Restore(); _restoreTask.DoneWhen(TRUE); @@ -82,27 +84,26 @@ END_IF //**************************************** //*************CLEAR*DATA***************** -_taskEnabled := NOT _triggerTask.Busy AND NOT _triggerFastTask.Busy AND NOT _triggerWithTimeoutTask.Busy AND _status.ClientConnected; -_clearResultDataTask.Enabled := _taskEnabled; +_clearResultDataTask.Enabled := _status.ClientConnected; _clearResultDataTask(inoIoData := _genericData,inoConfig := THIS^._config,inoStatus := THIS^._status); //**************************************** //*************TRIGGER ******************** -_taskEnabled := NOT _clearResultDataTask.Busy AND NOT _triggerFastTask.Busy AND NOT _triggerWithTimeoutTask.Busy AND _status.ClientConnected; +_triggerTask.Enabled := NOT _triggerFastTask.Busy AND NOT _triggerWithTimeoutTask.Busy AND _status.ClientConnected; IF _triggerTask.Execute() THEN _triggerInternalTask.Enabled := TRUE; - _triggerInternalTask(inTriggerType:=eTcoDesignerTriggerType.Trigger, refClearResultsTask:=_clearResultDataTask, inoIoData := _genericData,inoConfig := THIS^._config,inoStatus := THIS^._status); + _triggerType :=eTcoDesignerTriggerType.Trigger; _triggerTask.DoneWhen(_triggerInternalTask.Invoke().Done); _triggerTask.ThrowWhen(_triggerInternalTask.Error); END_IF //*********************************************** //*************TRIGGER WITH TIMEOUT******************** -_taskEnabled := TRUE; -_triggerWithTimeoutTask.Enabled := NOT _clearResultDataTask.Busy AND NOT _triggerFastTask.Busy AND NOT _triggerTask.Busy AND _status.ClientConnected; -IF _triggerTask.Execute() THEN + +_triggerWithTimeoutTask.Enabled := NOT _triggerFastTask.Busy AND NOT _triggerTask.Busy AND _status.ClientConnected; +IF _triggerWithTimeoutTask.Execute() THEN _triggerInternalTask.Enabled := TRUE; - _triggerInternalTask(inTriggerType:=eTcoDesignerTriggerType.TriggerWithTimeout, refClearResultsTask:=_clearResultDataTask, inoIoData := _genericData,inoConfig := THIS^._config,inoStatus := THIS^._status); + _triggerType :=eTcoDesignerTriggerType.TriggerWithTimeout; _triggerWithTimeoutTask.DoneWhen(_triggerInternalTask.Invoke().Done); _triggerWithTimeoutTask.ThrowWhen(_triggerInternalTask.Error); END_IF @@ -111,16 +112,18 @@ END_IF //*************TRIGGER FAST******************** -_taskEnabled := TRUE; -_triggerFastTask.Enabled := _taskEnabled; + +_triggerFastTask.Enabled := NOT _triggerWithTimeoutTask.Busy AND NOT _triggerTask.Busy AND _status.ClientConnected; IF _triggerFastTask.Execute() THEN _triggerInternalTask.Enabled := TRUE; - _triggerInternalTask(inTriggerType:=eTcoDesignerTriggerType.TriggerFast, refClearResultsTask:=_clearResultDataTask, inoIoData := _genericData,inoConfig := THIS^._config,inoStatus := THIS^._status); + _triggerType :=eTcoDesignerTriggerType.TriggerFast; + _triggerFastTask.DoneWhen(_triggerInternalTask.Invoke().Done); _triggerFastTask.ThrowWhen(_triggerInternalTask.Error); END_IF //*********************************************** +_triggerInternalTask(inTriggerType:=_triggerType, refClearResultsTask:=_clearResultDataTask, inoIoData := _genericData,inoConfig := THIS^._config,inoStatus := THIS^._status); inoData:=_specificData;]]> diff --git a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVisionTests/POUs/myVeryFirstTcoContext.TcPOU b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVisionTests/POUs/myVeryFirstTcoContext.TcPOU index 695dd8ae4..f9c6aa02d 100644 --- a/src/TcoCognexVision/src/XAE/XAE/TcoCognexVisionTests/POUs/myVeryFirstTcoContext.TcPOU +++ b/src/TcoCognexVision/src/XAE/XAE/TcoCognexVisionTests/POUs/myVeryFirstTcoContext.TcPOU @@ -16,7 +16,7 @@ VAR {attribute addProperty Name "<#Project Specific Data#>"} _specificData : ProjectSpecificData(THIS^); - + END_VAR]]> diff --git a/src/TcoCognexVision/src/XAE/XAE/XAETcoCognexVision.tsproj b/src/TcoCognexVision/src/XAE/XAE/XAETcoCognexVision.tsproj index f331ad449..427bb8ed4 100644 --- a/src/TcoCognexVision/src/XAE/XAE/XAETcoCognexVision.tsproj +++ b/src/TcoCognexVision/src/XAE/XAE/XAETcoCognexVision.tsproj @@ -581,7 +581,7 @@ - + TcoCognexVisionTests Instance {08500001-0000-0000-F000-000000000064} @@ -801,26 +801,6 @@ PlcTask Outputs - - MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.EnableResultsBuffering - BOOL - - - MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.AcknowledgeInspectionResults - BOOL - - - MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.ExtendedUserDataSet - BOOL - - - MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.ExecuteCommand - BOOL - - - MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.ClearError - BOOL - GVL.myVeryFirstDatamanGVL.PnIoBoxCtrl UINT @@ -937,6 +917,26 @@ GVL.myVeryFirstInsightGVL.UserData.UserData ARRAY [0..253] OF BYTE + + MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.EnableResultsBuffering + BOOL + + + MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.AcknowledgeInspectionResults + BOOL + + + MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.ExtendedUserDataSet + BOOL + + + MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.ExecuteCommand + BOOL + + + MAIN.myVeryFirstTcoContextInstance.myVeryFirstInsight._status.SignalStatus.ClearError + BOOL + diff --git a/src/TcoData/src/Wpf/TcoData.Wpf/Data/DataSelector/TcoDataExchangeSimpleSelectorView.xaml b/src/TcoData/src/Wpf/TcoData.Wpf/Data/DataSelector/TcoDataExchangeSimpleSelectorView.xaml index 17477c5d4..8c924f8f2 100644 --- a/src/TcoData/src/Wpf/TcoData.Wpf/Data/DataSelector/TcoDataExchangeSimpleSelectorView.xaml +++ b/src/TcoData/src/Wpf/TcoData.Wpf/Data/DataSelector/TcoDataExchangeSimpleSelectorView.xaml @@ -33,15 +33,16 @@ CornerRadius="5"> - - - + + + + - + - - - - - - - - - - - - - - + + - - - + + + + + + + + + + + + + + + + @@ -107,7 +111,7 @@ + Text="{Binding FilterByID}"/>