TcOpen.Inxton.TcoCognexVision.Wpf 0.11.0-alpha.79

This is a prerelease version of TcOpen.Inxton.TcoCognexVision.Wpf.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package TcOpen.Inxton.TcoCognexVision.Wpf --version 0.11.0-alpha.79                
NuGet\Install-Package TcOpen.Inxton.TcoCognexVision.Wpf -Version 0.11.0-alpha.79                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TcOpen.Inxton.TcoCognexVision.Wpf" Version="0.11.0-alpha.79" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TcOpen.Inxton.TcoCognexVision.Wpf --version 0.11.0-alpha.79                
#r "nuget: TcOpen.Inxton.TcoCognexVision.Wpf, 0.11.0-alpha.79"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TcOpen.Inxton.TcoCognexVision.Wpf as a Cake Addin
#addin nuget:?package=TcOpen.Inxton.TcoCognexVision.Wpf&version=0.11.0-alpha.79&prerelease

// Install TcOpen.Inxton.TcoCognexVision.Wpf as a Cake Tool
#tool nuget:?package=TcOpen.Inxton.TcoCognexVision.Wpf&version=0.11.0-alpha.79&prerelease                

TcoCognexVision

Introduction

The TcoCognexVision is a set of libraries covering the product portfolio of the vision systems from the vendor Cognex for the target PLC platform Twincat and TcOpen framework.

The package consists of a PLC library providing control logic and its .NET twin counterpart aimed at the visualization part. This package currently covers following product range:

  1. Dataman firmware v5.x.x
  2. More enroute

General TcOpen Prerequisites

Check general requisits for TcOpen here.

Dataman v5.x.x

  • PLC enviroment


    Preconditions: The gsdml file(s) included in this package is(are) copied into the subfolder ..\Config\Io\Profinet\ of the TwinCAT3 instalation folder, before opening Visual Studio. The Profinet interface of the slave device is activated, its Profinet name is set and its network parameters are set to match the address range of the Profinet master. This settings needs to by done by DATAMAN SETUP TOOL SOFTWARE provided by Cognex.

    • Implementation steps.
      1. Declare the hardware structure in the Global Variable list (GVL).
      VAR_GLOBAL
          myVeryFirstDatamanGVL 	: TcoCognexVision.TcoDatamanIO_v_5_x_x;
      END_VAR
      
      2. Build the XAE project.
      3. Add Profinet master device, set its network adapter and network parameters.
      4. Using the gsdml file mentioned, add Profinet slave device, choose proper DAP (Device Access Point) and set its Profinet name and network parameters to match those already assigned by the configuration tool.
      5. If necessary for your application, change the predefined submodule User Data - 64 bytes in the slots 6 to matches your requirements.
      6. If necessary for your application, change the predefined submodule Result Data - 64 bytes in the slots 7 to matches your requirements.
      8. Create the Function Block that extends the TcoCore.TcoContext function block.
      9. Inside the declaration part of the function block created, add an instance of the TcoCognexVision.TcoDataman_v_5_x_x function block with the initialization according to the example.
      FUNCTION_BLOCK myVeryFirstTcoContext EXTENDS TcoCore.TcoContext
      VAR
          {attribute addProperty Name "<#Enter the user friendly name of this instance here!!!#>"}
          myVeryFirstDataman : TcoCognexVision.TcoDataman_v_5_x_x(THIS^);
      END_VAR
      
      10. Add the Main method to the function block created in the step 8, and insert the TcoDataman_v_5_x_x instance call with passing the mapped hardware structure.
      11. Add call of the method Service() according to the example. By calling this method, all control elements of this component are accessible later in the visualization.
      myVeryFirstDataman(inoIoData:= GVL.myVeryFirstDatamanGVL);
      myVeryFirstDataman.Service();
      
      12. In the declaration part of the MAIN(PRG) create an instance of the function block created in the step 8 according to the example.
      PROGRAM MAIN
      VAR
          myVeryFirstTcoContextInstance :	myVeryFirstTcoContext;
      END_VAR
      
      13. Into the body of the MAIN(PRG) add the call of the Run() method of the instance created in the previous step, according to the example.
      myVeryFirstTcoContextInstance.Run();
      
      14. Build and save the XAE project.
      15. Activate configuration, load the PLC program and swith the PLC into the run mode.

  • .NET enviroment


    Preconditions: All neccessary packages are installed, all neccessary references are set, connector to the target PLC is set. MainWindow.xaml has its view model declared and its DataContext is set to this view model, according to the example.
        <Window.DataContext>
            <local:MainWindowViewModel />
        </Window.DataContext>
    

    • Implementation steps.
      1. Run the Vortex Builder.
      2. Into the MainWindow.xaml insert any kind of container, for example StackPanel and bind its DataContext to the MAIN of the EntryPointToYourPlc.
      <StackPanel DataContext="{Binding EntryPointToYourPlc.MAIN}">
      </StackPanel>
      
      3. Into the container added, insert the RenderableContentControl and bind its DataContext to the myVeryFirstTcoContextInstance.myVeryFirstDataman, using the PresentationType of the value Service.
      <vortex:RenderableContentControl DataContext="{Binding myVeryFirstTcoContextInstance.myVeryFirstDataman}" PresentationType="Service"/>
      
      4. After starting the application and expanding the view, final view should look as follows:
      alternate text is missing from this package README image

Components

TcoDataman

alt text

TcoInsight

alt text

TcoDesigner

Definition UserData and ResultsData

Important: Project specific data have to be derived from TcoCognexVision.TcoDesignerRootContainer (this is required for correctly rendered Ui)

    FUNCTION_BLOCK ProjectSpecificData EXTENDS TcoCognexVision.TcoDesignerRootContainer  
    VAR_INPUT
    END_VAR
    VAR_OUTPUT
    END_VAR
    VAR
        {attribute wpf [Container(Layout.Stack,"PcToPlc")]}	
        {attribute wpf [Group(Layout.GroupBox)]}
        {attribute addProperty Name "<#PcToPlc#>"}
        PcToPlc:DesignerResults;
        {attribute wpf [Container(Layout.Stack,"PlcToPc")]}	
        {attribute wpf [Group(Layout.GroupBox)]}
        {attribute addProperty Name "<#PlcToPc#>"}
        PlcToPc:DesignerUserData;
        
    END_VAR

where DesignerResults are (here may be placed customized data (what project required from vision system to plc))

   TYPE DesignerResults EXTENDS TcoCore.TcoStruct :
   STRUCT
       {attribute addProperty Name "<#ResultBool#>"}
       ResultBool:BOOL;
       {attribute addProperty Name "<#ResultInt#>"}
       ResultInt:INT;
       {attribute addProperty Name "<#ResultString#>"}
       ResultString:STRING;

       
       {attribute addProperty Name "<#Data inspector#>"}
       DigitalInspector:TcoInspectors.TcoDigitalInspector(THISSTRUCT);
       {attribute addProperty Name "<#Data inspector#>"}
       DataInspector:TcoInspectors.TcoDataInspector(THISSTRUCT);
       
       {attribute addProperty Name "<#Analog inspector#>"}
       AnalogInspector:TcoInspectors.TcoAnalogueInspector(THISSTRUCT);
   END_STRUCT
   END_TYPE

and where DesignerUserData are (here may be placed customized data (what project required from plc to vision system))

   TYPE DesignerUserData EXTENDS TcoCore.TcoStruct :
   STRUCT
       {attribute addProperty Name "<#ResultBool#>"}
       ResultBool:BOOL;
       {attribute addProperty Name "<#ResultInt#>"}
       ResultInt:INT;
       {attribute addProperty Name "<#ResultString#>"}
       ResultString:STRING;
       
   END_STRUCT
   END_TYPE

Declaration Plc

    {attribute addProperty Name "<#Cognex Designer#>"}
	designer : TcoCognexVision.TcoDesigner_v_2_x_x(THIS^);
	//Project specific data
	{attribute addProperty Name "<#Project Specific Data#>"}
    _specificData : ProjectSpecificData(THIS^);

Initialization

    designer(inoData:=_specificData );
    designer.Service();

XAML

        <vortex:RenderableContentControl DataContext="{Binding myVeryFirstTcoContextInstance.designer}" PresentationType="Service"/>

Service View

alt text

alt text

ProjectSpecific data defined above in UI

alt text

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 or tail filter.(see picture below).

MAIN.myVeryFirstTcoContextInstance._specificData.PcToPlc.AnalogInspector._data.DetectedStatus

alt text alt text

Final data suitable for import into designer will be:

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;
Product Compatible and additional computed target framework versions.
.NET net5.0-windows7.0 is compatible.  net6.0-windows was computed.  net7.0-windows was computed.  net8.0-windows was computed. 
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.11.0-alpha.85 54 12/5/2024
0.11.0-alpha.84 35 12/5/2024
0.11.0-alpha.83 46 12/4/2024
0.11.0-alpha.79 73 10/10/2024
0.11.0-alpha.74 82 6/25/2024
0.11.0-alpha.73 56 6/17/2024
0.11.0-alpha.71 68 6/3/2024
0.11.0-alpha.68 68 4/29/2024
0.11.0-alpha.65 73 3/27/2024
0.11.0-alpha.64 75 3/21/2024
0.11.0-alpha.63 74 3/18/2024
0.11.0-alpha.62 62 3/14/2024
0.11.0-alpha.61 64 2/26/2024
0.11.0-alpha.60 76 2/13/2024
0.11.0-alpha.59 61 1/22/2024
0.11.0-alpha.58 57 1/22/2024
0.11.0-alpha.57 74 1/19/2024
0.11.0-alpha.56 76 1/8/2024
0.11.0-alpha.55 82 1/4/2024
0.11.0-alpha.54 89 12/12/2023
0.11.0-alpha.53 73 12/12/2023
0.11.0-alpha.52 91 12/6/2023
0.11.0-alpha.50 87 11/30/2023
0.11.0-alpha.49 79 11/24/2023
0.11.0-alpha.48 79 11/24/2023
0.11.0-alpha.45 97 10/6/2023
0.11.0-alpha.44 78 9/22/2023
0.11.0-alpha.43 88 9/7/2023
0.11.0-alpha.42 86 9/7/2023
0.11.0-alpha.41 82 9/5/2023
0.11.0-alpha.35 103 7/25/2023
0.11.0-alpha.32 92 7/20/2023
0.11.0-alpha.29 81 5/22/2023
0.11.0-alpha.26 88 4/21/2023
0.11.0-alpha.23 108 3/22/2023
0.11.0-alpha.19 102 2/22/2023
0.11.0-alpha.17 95 2/15/2023
0.11.0-alpha.16 114 2/2/2023
0.11.0-alpha.15 107 1/29/2023
0.11.0-alpha.12 102 1/20/2023
0.11.0-alpha.8 107 1/11/2023
0.11.0-alpha.6 104 12/20/2022
0.11.0-alpha.3 97 12/12/2022
0.11.0-alpha.2 100 12/6/2022
0.10.0-alpha.31 96 11/28/2022
0.10.0-alpha.30 99 11/23/2022
0.10.0-alpha.27 109 11/14/2022
0.10.0-alpha.22 93 11/2/2022
0.10.0-alpha.20 101 10/27/2022
0.10.0-alpha.15 102 10/24/2022
0.10.0-alpha.10 108 10/13/2022
0.10.0-alpha.9 114 10/13/2022

Early dev stage. Experimental. DO NOT USE IN PRODUCTION!!!