@bertus try to test using only SMC_SmoothMerge and SMC_SmoothPath separately. Block setting bExecute on both of this FBs.
So in my case the solution was that I had both smooth path and round path in the code. Both blocks had their own buffer and seemed completely separate but still triggering Execute on both caused the mentioned problems. When I blocked Execute the problems disappeared.
This code works well: PROGRAM PLC_PRG VAR execute : BOOL; abort : BOOL; doMDI : BOOL; manualDataInput : STRING(1024) := 'N5 G01 X0.00 Y200.00 N6 G01 X200.00 Y200.00 N7 G01 X200.00 Y0.00 N8 G01 X0.00 Y0.00'; stringStreamArray: ARRAY[0..NUMBER_OF_CHAINS-1] OF SMC_StringStream2 ; i : UDINT; readNCFromStream : SMC_ReadNCFromStream; sentencesFromStringSteam : SMC_GSentenceQueue ; interpreter : SMC_NCInterpreter; interpreterGeoInfoBuffer: ARRAY[1..GEO_INFO_BUFFERS_SIZE] OF SMC_GeoInfo; roundPath : SMC_RoundPath;...
Hi @bertus I have a similar situation: just like in your case I can see that rounding works correctly only for the first element, additionally in my case on a path made of lines where I am testing this every second line is skipped. The interpolator jumps to every second iActObjectSourceNo.
Codesys - SMC_ERROR SMC_CGR_INVALID_POSPERIOD - Invalid modulo period less than or equal to zero or greater than half the bus bandwidth. Has anyone seen this error and actually understands what it means and how to get rid of it? I tried to work around it by reducing the number of increments on the drive but then the drive itself starts throwing errors.
Thank you very much @gseidel ! :)
Hi, I have a question. Does anyone know a way to change latch alarm variables from the PLC runtime? In the help there is a method described: https://content.helpme-codesys.com/en/libs/AlarmManager/Current/Interfaces/pou-IAlarm3/SetLatchVarValue.html but I donβt know how to use it correctly.
Does anyone have an idea how to run such a spiral on CNC smoothly without stops? SMC_SmoothPath and SMC_RoundPath donβt help. In general according to the documentation they should work on arcs but in the example only straight lines are shown and I get the impression these functions only work for straight lines. N005 G51 D15 N010 G01 X120.00 Y120.72 F100 N020 G03 X110.00 Y130.72 I-10.00 J0.00 F100 N030 G03 X100.00 Y120.72 I0.00 J-10.00 F100 N040 G03 X140.00 Y120.72 I20.00 J0.00 F100 N050 G01 X140.00...