Post by farren on Codesys complains about matching versions
CODESYS Forge
talk
(Post)
Thanks -- I'll try that.... -Farren
Last updated: 2025-12-16
wiki Discussion
willebro
wiki
(Discussion)
Forum for wiki comments
Last updated: 2025-12-16
blog Discussion
willebro
blog
(Discussion)
Forum for blog comments
Last updated: 2025-12-16
Post by farren on Codesys complains about matching versions
CODESYS Forge
talk
(Post)
Success!! Thanks! -Farren
Last updated: 2025-12-16
Post by willebro on "Distributed clocks are not synchronized, Rea time problem on hardware" ?
CODESYS Forge
talk
(Post)
Last updated: 2025-12-17
Codesys complains about matching versions
CODESYS Forge
talk
(Thread)
Codesys complains about matching versions
Last updated: 2025-12-16
Home (version 1) discussion
ahmtplt
wiki
(Thread)
Home (version 1) discussion
Last updated: 2025-12-17
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
wiki Discussion
bertus
wiki
(Discussion)
Forum for wiki comments
Last updated: 2025-12-17
blog Discussion
bertus
blog
(Discussion)
Forum for blog comments
Last updated: 2025-12-17
(no subject)
bertus
wiki
(Thread)
Last updated: 2025-12-17
Home
bertus
wiki
(WikiPage)
Project Members: bertus (admin)
Last updated: 2025-12-17
C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr
CODESYS Forge
talk
(Thread)
C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr
Last updated: 2025-12-18
blog Discussion
unusual-data
blog
(Discussion)
Forum for blog comments
Last updated: 2025-12-18
wiki Discussion
unusual-data
wiki
(Discussion)
Forum for wiki comments
Last updated: 2025-12-18
Home
unusual-data
wiki
(WikiPage)
Project Members: unusual-data (admin)
Last updated: 2025-12-18
(no subject)
unusual-data
wiki
(Thread)
Last updated: 2025-12-18
myproject Git repository
myproject
code2
(Git Repository)
Last updated: 2025-12-17
Post by bertus on Can't get SMC_SmoothPath to work
CODESYS Forge
talk
(Post)
Hi Georg, thanks for your time. What is the value of D_ANGLE_TOL? It is set to 0.01. Do you need the assignment bAbort := NOT bDecoder? Does it help to leave it out? This seems to make no difference. Any errors (e.g. SMC_SmoothPath.Error/ErrorID) or PLC log messages? No errors or log messages. What if you comment out SMC_SmoothMerge and SMC_LimtiDynamics, is corner smoothing still not working? Indeed. Is bDecode written from a different task (e.g. visu)? Then I would recommend to assign to a local variable (bDecodeLocal := bDecode) and use that for all FBs. Otherwise, FBs might see different values of bDecode in a single cycle, which will cause problems. It is a local variable, written from a state machine inside this program. But there is new information: During some trial and error, I tried skipping "stage 2: merge short linear segments" (SMC_SmoothMerge). And suddenly it rounds the corners, see attached image. Looking a bit closer, I noticed that (with the original program) after a download (cold start?), it in fact did round the corners, but only once. Ever next cycle in which the NC program was executed, the corners where not rounded. Not sure if there is any relation, but SMC_SmoothMerge is also the only FB which has no bAbort input. Perhaps I need to reset it (or any buffers) by other means?
Last updated: 2025-12-18
Home (version 1) discussion
mbart
wiki
(Thread)
Home (version 1) discussion
Last updated: 2025-12-18
Home (version 1) discussion
unusual-data
wiki
(Thread)
Home (version 1) discussion
Last updated: 2025-12-22
wiki Discussion
tomicm
wiki
(Discussion)
Forum for wiki comments
Last updated: 2025-12-22
blog Discussion
tomicm
blog
(Discussion)
Forum for blog comments
Last updated: 2025-12-22
(no subject)
tomicm
wiki
(Thread)
Last updated: 2025-12-22
Home
tomicm
wiki
(WikiPage)
Project Members: tomicm (admin)
Last updated: 2025-12-22