Ejemplo 01 de CNC: Generación de OutQueue directamente
Ver el CNC01_direct.project proyecto de ejemplo en el directorio de instalación de CODESYS bajo ..\CODESYS SoftMotion\Examples.
Este ejemplo muestra un programa CNC con dos ejes. Se abordan cuatro posiciones en el plano X/Y con una velocidad y aceleración definidas. El programa establece dos puntos de cambio de ruta en la ruta. El programa se escribe directamente en una estructura de datos usando el SMC_OutQueue modo de compilación.
Crear un programa NC en el editor CNC
- Crear un - CNCdirectproyecto con un SoftMotion controlador.
- Insertar un Programa CNC objeto nombrado - Example.- Selecciona el Implementación - Din66025y el Modo de compilación- SMC_OutQueue.
- Especifique los siguientes bloques de movimiento: - Editor CNC:  
Creación de una interfaz de accionamiento y configuración de PLC
Defina una estructura de accionamiento con dos accionamientos lineales de la siguiente manera:
- Inserte dos unidades virtuales - X_Drivey- Y_Drivebajo el Piscina de eje general SoftMotion.
- Selecciona el Tipo de eje parámetro a - Finite(1).- Editor de configuración:  
Crear un programa IEC
- Agregar un nuevo programa de CFC Ipo a la aplicación y configurar una tarea cíclica con un intervalo de 3 ms. 
- Active la unidad con el - MC_Powerbloque de funciones- POU:  
- Introduzca el - SMC_InterpolatorPOU. El bloque de funciones convierte una ruta definida por objetos GEOINFO en puntos de ruta discretos. El bloque de función recibe la dirección del programa CNC creado en la entrada- poqDataIn. Luego, el tiempo de ciclo de la tarea IEC debe escribirse en la entrada- dwIpoTime. Puede especificar estos como valores constantes en la entrada- dwIpoTimeo puedes usar la variable- dwCyclede la estructura del grupo de ejes desde la configuración del PLC. La ventaja de esto es que el tiempo correcto se usa automáticamente como entrada del interpolador cuando cambia el tiempo de ciclo de la tarea.- POU:  
- En este ejemplo, se controlará un sistema de pórtico. Para este propósito, inserte una instancia de los bloques de función de transformación inversa y directa de la - SM_TrafoBiblioteca. El bloque de función de transformación directa contiene los variadores como entradas. El bloque de función de transformación inversa debe contener la posición establecida del interpolador. La transformación hacia adelante en el ejemplo es necesaria solo para la visualización.- Instancia de bloque de función:   
- Las salidas del bloque de funciones (las coordenadas del eje) deben escribirse en los accionamientos. Esto se hace con el - SMC_ControlAxisByPosbloque de funciones. Debido a que la aplicación no garantiza que las salidas del interpolador sean constantes (p. Ej., La ruta termina en un punto distinto de donde comenzó), active la evitación de espacios (- bAvoidGaps,- fGapVelocity,- fGapAcceleration,- fGapDeceleration). Luego conecta el- StopIposalida a la- bEmergency_Stopentrada del interpolador y conectar la salida del interpolador- iStatusa las respectivas entradas de los bloques de función de control de ejes.- Tenga en cuenta el orden correcto de los bloques de función al programar con CFC. - CFC:  
Creación de una interfaz operativa y una interfaz de prueba
Vincula dos objetos de visualización a una nueva visualización: la plantilla del interpolador y la plantilla de la transformación. Debe utilizar marcadores de posición para vincularlos a las respectivas instancias del bloque de funciones (aquí: Ipo.smci y Ipo.trafof).
Puesta en servicio
Compile e inicie el programa creado. El programa ejecuta el movimiento del CNC tan pronto como Execute se ha configurado la entrada del interpolador. Una vez que el programa se haya ejecutado por completo, puede reiniciarlo mediante un nuevo flanco ascendente.
Tenga en cuenta la función de los conmutadores de ruta que también se muestran en la visualización del bloque de función de interpolación.