![]() |
VOOZH | about |
dotnet add package TcOpen.Inxton.TcoRexrothPress.Wpf --version 0.12.0-alpha.111
NuGet\Install-Package TcOpen.Inxton.TcoRexrothPress.Wpf -Version 0.12.0-alpha.111
<PackageReference Include="TcOpen.Inxton.TcoRexrothPress.Wpf" Version="0.12.0-alpha.111" />
<PackageVersion Include="TcOpen.Inxton.TcoRexrothPress.Wpf" Version="0.12.0-alpha.111" />Directory.Packages.props
<PackageReference Include="TcOpen.Inxton.TcoRexrothPress.Wpf" />Project file
paket add TcOpen.Inxton.TcoRexrothPress.Wpf --version 0.12.0-alpha.111
#r "nuget: TcOpen.Inxton.TcoRexrothPress.Wpf, 0.12.0-alpha.111"
#:package TcOpen.Inxton.TcoRexrothPress.Wpf@0.12.0-alpha.111
#addin nuget:?package=TcOpen.Inxton.TcoRexrothPress.Wpf&version=0.12.0-alpha.111&prereleaseInstall as a Cake Addin
#tool nuget:?package=TcOpen.Inxton.TcoRexrothPress.Wpf&version=0.12.0-alpha.111&prereleaseInstall as a Cake Tool
The TcoRexrothPress is a set of libraries covering the product portfolio of the pressing systems from the vendor Rexroth 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 Smart Function Kit firmware v4.x.x.
Check general requisits for TcOpen here.
Preconditions:
The gsdml file(s) included in this package is(are) copied into the subfolder ..\Config\Io\EtherCAT\ of the TwinCAT3 instalation folder, before opening Visual Studio. It is possible use alredy predefined device stored in Press (IndraDrive MPC20 (1 CCD Master +0 CCD Slaves)).xti file (Here is predefined whole structure for SOE comunication). Boot files are stored in TcOpen\src\TcoRexrothPress\src\TcoRexrothPressConnector\ddf\
Note:
Configuration and comisionig of SFK(Smart Function Kit) is possible provide via built in webserver. [SFK Webserver] (https://192.168.0.1/#/dashboard) provided by Rexroth. Ip address might be different!
Here you can find all documenatation such as required structure on bus, available command ....
VAR_GLOBAL
{attribute addProperty Name "Press IO"}
RexrothPress:TcoSmartFunctionKitIO_v_4_x_x;
{attribute addProperty Name "AdsAddr"}
AdsAddr AT %I* : TcoAmsAddr;
{attribute addProperty Name "State"}
State AT %I* : UINT;
END_VAR
gsdml file mentioned, add Ethercat slave device, then rescan devices on Ecat bus and use cofiguration described in rexroth documentiation. You can also use predefined template in xti file and add it into topology directlyGVL_xLinker.RexrothPress. You can also link ads information for Ecat diagnostic purposes such as the items AdsAddr and State. If AdsAddr is empty you diagnostic is irelevantTcoCore.TcoContext function blockTcoRexrothPress.TcoSmartFunctionKit_v_4_x_x function block with the initialization according to the exampleFUNCTION_BLOCK myVeryFirstTcoContext EXTENDS TcoCore.TcoContext
VAR
{attribute addProperty Name "<#My very first SFK#>"}
sfk : TcoRexrothPress.TcoSmartFunctionKit_v_4_x_x (THIS^);
END_VAR
Main method to the function block created in the step 8, and insert the TcoRexrothPress.TcoSmartFunctionKit_v_4_x_x instance call with passing the mapped hardware structureService() according to the example. By calling this method, all control elements of this component are accessible later in the visualization sfk.Config.ErrorTime:=T#20S;
sfk.Config.InfoTime:=T#10S;
sfk.Config.CurveExportLocation:='d:\expot\'; // if empty export not performed
sfk.Config.IpAddress:='192.168.0.1'; // for rest comunication
adsInfo.netId:=GVL_iXlinker.AdsAddr.netId; //ads info from eCAT bus
adsInfo.port:=GVL_iXlinker.AdsAddr.port;
sfk(inoIoData:=GVL_iXlinker.RexrothPress,AdsAddr:=adsInfo);
sfk.Service();
MAIN(PRG) create an instance of the function block created in the step 8 according to the examplePROGRAM MAIN
VAR
myVeryFirstTcoContextInstance : myVeryFirstTcoContext;
END_VAR
MAIN(PRG) add the call of the Run() method of the instance created in the previous step, according to the examplemyVeryFirstTcoContextInstance.Run();
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>
Vortex BuilderMainWindow.xaml insert any kind of container, for example StackPanel and bind its DataContext to the MAIN of the EntryPointToYourPlc <StackPanel DataContext="{Binding TcoRexrothPressTestPlc.MAIN}">
</StackPanel>
RenderableContentControl and bind its DataContext to the myVeryFirstTcoContextInstance.myVeryFirstDataman, using the PresentationType of the value Service<vortex:RenderableContentControl DataContext="{Binding myVeryFirstTcoContextInstance.sfk}" PresentationType="Service"/>
When you click on Health indicator ,diaagnostic information is shown.
All available commands and properiate parameters (are shown/ hide automaticaly) reflecting command in sfk documentation
Run Command - by invoking this task,command defined in combobox will be fired. All commands and their functions are described in sfk documentation (picture below, possible download pdf file)
GetResult Command - this command provide last results via REST api.
Note:
There is neccessary to define a specific IP address.
Save last Curve Command - this remote tas provide us last curve results and measures da via REST api. All this data are exported to defined location and organize into directories splitted by yyyyMMdd. File format is json. Name of this exported file is in format SERIALNUMBER_CURVEID_yyyyMMddHHmmss.json
"id": "6436811dbba56b04d1ec0e0e",
"program": {
"id": "6253ed04257f8404d30c2f33",
"fieldbusId": 4,
"name": "Pokus1",
"driveId": "6253ed040c2f33",
"functions": [
{
"parameters": [
{
"type": "INPUT",
"name": "velocity",
"value": 50
},
{
"type": "INPUT",
"name": "acceleration",
"value": 2.4
},
{
"type": "FAILURE",
"name": "overload"
},
{
"type": "SUCCESS",
"name": "position",
"value": 0
}
],
"name": "initialPosition",
"trendingEnabled": true,
"visible": true,
"position": 1
},
//some data are skiped due size!!!
"maxForce": 36.7,
"maxPosition": 47.49,
"valid": true,
"validations": [],
"createdDate":new Date(1681293597526),
"cycleTime": 6.98,
"validationTime": 55,
"status": "FINISHED",
"customId": "AMC HJSGHdhkghgjflv",
"variableValues": [],
"dataRecordingDisabled": false,
"samplingInterval": 4,
"offset": {
"x": 0,
"y": 0
},
"_id": "6436811dbba56b04d1ec0e0e",
"__v": 1
}
IF (Step(1000, TRUE, 'SFK RESTORE')) THEN
//-------------------------------------
THIS^.ParentSequence.Station.Components.Sfk.Restore();
StepCompleteWhen(TRUE);
//-------------------------------------
END_IF
done:=false;
IF (Step(2000, TRUE, 'SFK STOP MOVEMENT')) THEN
//-------------------------------------
THIS^.ParentSequence.Station.Components.Sfk.Request.Command:=eTcoSmartFunctionKitCommand.StopMovement;
done:=THIS^.ParentSequence.Station.Components.Sfk.RunCommand().Done;
StepCompleteWhen(done);
IF done THEN
THIS^.ParentSequence.Station.Components.Sfk.Restore();
END_IF
//-------------------------------------
END_IF
IF (Step(3000, TRUE, 'SFK RESET')) THEN
//-------------------------------------
THIS^.ParentSequence.Station.Components.Sfk.Request.Command:=eTcoSmartFunctionKitCommand.ClearError;
done:=THIS^.ParentSequence.Station.Components.Sfk.RunCommand().Done ;
StepCompleteWhen(done);
IF done THEN
THIS^.ParentSequence.Station.Components.Sfk.Restore();
END_IF
//-------------------------------------
END_IF
IF (Step(4000, TRUE, 'SFK HOME')) THEN
//-------------------------------------
THIS^.ParentSequence.Station.Components.Sfk.Request.Command:=eTcoSmartFunctionKitCommand.StartHoming;
done := THIS^.ParentSequence.Station.Components.Sfk.RunCommand().Done ;
StepCompleteWhen(done);
IF done THEN
THIS^.ParentSequence.Station.Components.Sfk.Restore();
END_IF
//-------------------------------------
END_IF
IF (Step(5000, TRUE, 'SFK SET PROGRAM')) THEN
//-------------------------------------
THIS^.ParentSequence.Station.Components.Sfk.Request.Command:=eTcoSmartFunctionKitCommand.SetProgramActive;
THIS^.ParentSequence.Station.Components.Sfk.Request.ProgramId:=4;
done:=THIS^.ParentSequence.Station.Components.Sfk.RunCommand().Done ;
StepCompleteWhen(done);
IF done THEN
THIS^.ParentSequence.Station.Components.Sfk.Restore();
END_IF
//-------------------------------------
END_IF
IF (Step(6000, TRUE, 'SFK START PROGRAM')) THEN
//-------------------------------------
THIS^.ParentSequence.Station.Components.Sfk.Request.Command:=eTcoSmartFunctionKitCommand.StartProgram;
_counterData:=_counterData+1;
fillChar:='00000000000';
_counterDataString:=DINT_TO_STRING(_counterData);
THIS^.ParentSequence.Station.Components.Sfk.Request.SerialNumber:=Tc2_Standard.MID(STR:=fillChar , LEN:=11- Tc2_Standard.LEN(_counterDataString), POS:=1 );
done:=THIS^.ParentSequence.Station.Components.Sfk.RunCommand().Done ;
StepCompleteWhen(done);
IF done THEN
THIS^.ParentSequence.Station.Components.Sfk.Restore();
END_IF
//-------------------------------------
END_IF
IF (Step(7000, TRUE, 'EXPORT CURVE')) THEN
//-------------------------------------
StepCompleteWhen(THIS^.ParentSequence.Station.Components.Sfk.ExportLastCurve().Done );
//-------------------------------------
END_IF
IF (Step(10000, TRUE, 'PARALELL TASK DONE')) THEN
//-------------------------------------
_task.DoneWhen(TRUE );
//-------------------------------------
END_IF
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0-windows7.0 net5.0-windows7.0 is compatible. net6.0-windows net6.0-windows was computed. net7.0-windows net7.0-windows was computed. net8.0-windows net8.0-windows was computed. net9.0-windows net9.0-windows was computed. net10.0-windows net10.0-windows was computed. |
| .NET Framework | net48 net48 is compatible. net481 net481 was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.12.0-alpha.111 | 46 | 6/16/2026 |
| 0.12.0-alpha.108 | 52 | 6/15/2026 |
| 0.12.0-alpha.105 | 44 | 6/12/2026 |
| 0.12.0-alpha.101 | 55 | 6/11/2026 |
| 0.12.0-alpha.98 | 54 | 6/8/2026 |
| 0.12.0-alpha.88 | 68 | 5/28/2026 |
| 0.12.0-alpha.84 | 104 | 3/3/2026 |
| 0.12.0-alpha.81 | 82 | 1/27/2026 |
| 0.12.0-alpha.78 | 170 | 10/24/2025 |
| 0.12.0-alpha.75 | 189 | 10/13/2025 |
| 0.12.0-alpha.71 | 173 | 10/9/2025 |
| 0.12.0-alpha.69 | 182 | 9/30/2025 |
| 0.12.0-alpha.63 | 192 | 9/1/2025 |
| 0.12.0-alpha.58 | 173 | 7/17/2025 |
| 0.12.0-alpha.55 | 188 | 7/7/2025 |
| 0.12.0-alpha.51 | 206 | 5/20/2025 |
| 0.12.0-alpha.42 | 258 | 5/14/2025 |
| 0.12.0-alpha.38 | 208 | 3/12/2025 |
| 0.12.0-alpha.35 | 153 | 2/14/2025 |
| 0.12.0-alpha.30 | 152 | 2/11/2025 |
Early dev stage. Experimental. DO NOT USE IN PRODUCTION!!!