How does codesys handle CAN Open EDS Files???
CODESYS Forge
talk
(Thread)
How does codesys handle CAN Open EDS Files???
Last updated: 2009-06-18
How To Generate XLM file whit CoDeSys V2.3
CODESYS Forge
talk
(Thread)
How To Generate XLM file whit CoDeSys V2.3
Last updated: 2015-04-03
Coupling Devicenet Slave EL6752 in CODESYS 3
CODESYS Forge
talk
(Thread)
Coupling Devicenet Slave EL6752 in CODESYS 3
Last updated: 2016-10-28
CoDeSys to PLC connection via Cellular MODEM
CODESYS Forge
talk
(Thread)
CoDeSys to PLC connection via Cellular MODEM
Last updated: 2012-02-24
Help w Function design: Can Codesys use optional parameters?
CODESYS Forge
talk
(Thread)
Help w Function design: Can Codesys use optional parameters?
Last updated: 2012-06-11
.exe file in codesys 2.3 visualization
CODESYS Forge
talk
(Thread)
.exe file in codesys 2.3 visualization
Last updated: 2013-12-15
Managing the CoDeSys projects in V2.3
CODESYS Forge
talk
(Thread)
Managing the CoDeSys projects in V2.3
Last updated: 2017-11-06
information about file generated by codesys
CODESYS Forge
talk
(Thread)
information about file generated by codesys
Last updated: 2014-10-21
communication error between codesys and wago 750-841
CODESYS Forge
talk
(Thread)
communication error between codesys and wago 750-841
Last updated: 2009-10-19
how to conncet codesys with my PLC?
CODESYS Forge
talk
(Thread)
how to conncet codesys with my PLC?
Last updated: 2011-02-11
Fatal Error when installing Wago CoDeSys version V2.3.9.61
CODESYS Forge
talk
(Thread)
Fatal Error when installing Wago CoDeSys version V2.3.9.61
Last updated: 2022-11-07
CoDeSys 2.3.9.11 - Pointers in Visualization Placeholders
CODESYS Forge
talk
(Thread)
CoDeSys 2.3.9.11 - Pointers in Visualization Placeholders
Last updated: 2010-03-11
Accessing an External File from CoDeSys
CODESYS Forge
talk
(Thread)
Accessing an External File from CoDeSys
Last updated: 2007-06-21
How to add a new device to CodeSys
CODESYS Forge
talk
(Thread)
How to add a new device to CodeSys
Last updated: 2012-12-12
Uniop Etop 500 series programming with Codesys
CODESYS Forge
talk
(Thread)
Uniop Etop 500 series programming with Codesys
Last updated: 2014-11-13
how to read a text file using codesys..
CODESYS Forge
talk
(Thread)
how to read a text file using codesys..
Last updated: 2007-06-25
codesys with epec controller and J1939 can communication
CODESYS Forge
talk
(Thread)
codesys with epec controller and J1939 can communication
Last updated: 2009-12-10
CoDeSys Soft-PLC PLCWinNT for Vr 3.5
CODESYS Forge
talk
(Thread)
CoDeSys Soft-PLC PLCWinNT for Vr 3.5
Last updated: 2019-10-24
Use time of day with codesys
CODESYS Forge
talk
(Thread)
Use time of day with codesys
Last updated: 2009-10-22
CANopen and CoDeSys Ver 2.3.8.4 memory managment
CODESYS Forge
talk
(Thread)
CANopen and CoDeSys Ver 2.3.8.4 memory managment
Last updated: 2008-05-07
Moeller XV progeammer on Xsoft Codesys in Canada
CODESYS Forge
talk
(Thread)
Moeller XV progeammer on Xsoft Codesys in Canada
Last updated: 2011-11-16
Webvisu not showing Codesys V3.5 SP13 Patch 2.
CODESYS Forge
talk
(Thread)
Webvisu not showing Codesys V3.5 SP13 Patch 2.
Last updated: 2024-04-06
How to communicate 2 pcs that are using CODESYS
CODESYS Forge
talk
(Thread)
How to communicate 2 pcs that are using CODESYS
Last updated: 2024-05-06
Codesys v 3.5 to factory IO
CODESYS Forge
talk
(Thread)
Codesys v 3.5 to factory IO
Last updated: 2025-11-20
Post by bertus on Can't get SMC_SmoothPath to work
CODESYS Forge
talk
(Post)
Hello all, I am trying to run a XY trajectory from a static G-Code file. Everything works except the smoothing/blending of the corners. My setup: Codesys v3.5sp18 Raspberry Pi 4 CODESYS Control for Raspberry Pi SL, using demo license. Zero axes (only using the interpolator). The order of processing for my decoding is: SMC_NCDecoder (ok) SMC_SmoothMerge (ok) SMC_SmoothPath (not ok) SMC_LimitDynamics SMC_CheckVelocities I created following instances and buffers: fbNCDecoder: SMC_NCDecoder; fbSmoothMerge: SMC_SmoothMerge; fbSmoothPath: SMC_SmoothPath; fbLimitDynamics: SMC_LimitDynamics; fbCheckVelocities: SMC_CheckVelocities; aNCDecoderBuffer: ARRAY[0..49] OF SMC_GeoInfo; // buffer stage 1 (fbNCDecoder) aSmoothMergeBuffer: ARRAY[0..19] OF SMC_GeoInfo; // buffer stage 2 (fbSmoothMerge) aSmoothPathBuffer: ARRAY[0..99] OF SMC_GeoInfo; // buffer stage 3 (fbSmoothPath) aLimitDynamicsBuffer: ARRAY[0..39] OF SMC_GeoInfo; // buffer stage 4 (fbLimitDynamics) My original G-Code file has a lot of short G1 elements but this example, I reduced it to a simple square: N000 G51 D10 N010 G38 O1 N020 G00 X0 Y0 F50 E1000 E-1000 N030 G01 X0 Y-37.5 N040 G01 X-75 Y-37.5 N050 G01 X-75 Y37.5 N060 G01 X0 Y37.5 N070 G01 X0 Y0 N080 G50 N090 G39 O1 In the Codesys CNC settings, I have these instances activated: SMC_SmoothMerge SMC_SmoothPath SMC_LimitDynamics SMC_CheckVelocities And with those settings (and the path-preprocessing button actived), the G-Code viewer shows the square with nicely blended corners (see attached picture). However, when running it on the PLC, it doesn't blend the corners at all. Below the relevant part of my code. The process is started with bDecode. // stage 1: decoding G-code fbNCDecoder( ncprog := square, bExecute:= bDecode, bAbort:= NOT bDecode, nSizeOutQueue := SIZEOF(aNCDecoderBuffer), pbyBufferOutQueue := ADR(aNCDecoderBuffer) ); // stage 2: merge short linear segments fbSmoothMerge( bExecute := bDecode, poqDataIn := fbNCDecoder.poqDataOut, nSizeOutQueue := SIZEOF(aSmoothMergeBuffer), pbyBufferOutQueue := ADR(aSmoothMergeBuffer), piMaxDifference := PI_MAX_DIFFERENCE, usiMaxDegree := 5, wFeatureFlag := 1, wAdditionalParamNumber := 0, dMinimumCurvatureRadius := D_MIN_CURVATURE_RADIUS ); // stage 3: smooth corners fbSmoothPath( bExecute := bDecode, bAbort := NOT bDecode, poqDataIn := fbSmoothMerge.poqDataOut, eMode := SMC_SMOOTHPATHMODE.SP_SPLINE5_MIN_CURVATURE, eAddAxMode := SMC_SMOOTHPATHADDAXMODE.SPAA_NONE, nSizeOutQueue := SIZEOF(aSmoothPathBuffer), pbyBufferOutQueue := ADR(aSmoothPathBuffer), dAngleTol := D_ANGLE_TOL, bSymmetricalDistances := TRUE, bImprovedSymmetricCuts := TRUE ); // stage 4: keep acc/dec and velocity within limits fbLimitDynamics( bExecute := bDecode, bAbort := NOT bDecode, poqDataIn := fbSmoothPath.poqDataOut, wAxis := 16#07, nSizeOutQueue := SIZEOF(aLimitDynamicsBuffer), pbyBufferOutQueue := ADR(aLimitDynamicsBuffer), bIncludePathSettings := TRUE, dMaxVel := 2500, dMaxAccDec := 10000 ); // stage 5: check the path speed fbCheckVelocities( bExecute := bDecode, bAbort := NOT bDecode, poqDataIn := fbLimitDynamics.poqDataOut, dAngleTol := D_ANGLE_TOL); pathQueue := fbCheckVelocities.poqDataOut; // repeat until MaxDuration ... Any idea what I'm doing wrong? Is smooth path supposed to work at all when using a demo license? Thanks.
Last updated: 2025-12-17
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.