Creación de cinemáticas personalizadas
Importante
La herramienta de código abierto wkhtmltopdf
es necesario para generar la documentación para la cinemática a partir de los comentarios en el bloque de funciones. Sin embargo, este componente ya no está incluido en la configuración de CODESYS versión 3.5 SP15 y superior.
Puede descargar la DLL desde https://wkhtmltopdf.org/downloads.html. Crear un directorio llamado DocScripting\3.5.xx.x\bin
en el directorio de instalación de CODESYS y guarde el archivo wkhtmltox.dll
allí.
Precaución: desde wkhtmltox.dll
ya no admite imágenes de forma predeterminada en la versión 0.12.6 y superior, debe usar la versión 0.12.5 o inferior.
Importante
Cuando se utiliza una instancia de una transformación cinemática de un grupo de ejes, las entradas de la instancia no deben cambiarse más.
Para cambiar la parametrización de la transformación cinemática, debe utilizar la configuración si es posible o crear varias instancias.
Cuando crea cinemática personalizada, debe observar lo siguiente:
La cinemática se describe mediante bloques de funciones especiales que se pueden almacenar en bibliotecas o en el POU vista del proyecto.
Para CODESYS Para enumerar las cinemáticas en el configurador, los bloques de función asociados deben implementar el
MC_KIN_REF_SM3
interfaz (parte deSM3_Transformation.library
).Puede definir la cinemática como una combinación de otras dos cinemáticas. Las cinemáticas con posibilidad de acoplar placas de herramientas o herramientas también deben implementar la
ISMPosiciónCinemática2
interfaz. Las cinemáticas que especifican una placa de herramienta o una herramienta tienen que implementar elISMToolCinemática2
interfaz.Si implementas solo
ISMPositionKinematics
/ISMToolKinematics
en vez deISMPositionKinematics2
/ISMToolKinematics2
, entonces las orientaciones "no disponibles" podrían procesarse incorrectamente.Cuando también implementas la interfaz
ISMPositionKinematics_Offset
, puede utilizar el modo de orientaciónAxis
.Cuando el POU tiene la
sm_kin_libdoc
atributo, el comentario especificado en el bloque de función se utiliza en el configurador como descripción de la cinemática. Para ello se utiliza el formato de "Texto reestructurado". Tenga en cuenta, sin embargo, que los enlaces no son compatibles.Los parámetros relacionados con el diseño, como las longitudes y los ángulos de los brazos, se crean como variables VAR_INPUT del bloque de funciones. Debes comentar los parámetros porque el comentario sirve como descripción en el configurador. Si los parámetros son de tipo numérico y su rango de valores está restringido, entonces se les debe proporcionar la
sm_kin_param_range
atributo.La sintaxis del rango de valores es
[a .. b]
para intervalos cerrados y]a .. b[
para intervalos abiertos. Las formas combinadas]a .. b]
y[a .. b[
también son posibles. Para este propósito,a
yb
tienen que ser literales apropiados para el tipo de parámetro. Los valores especiales+inf
y-inf
son posibles para los límites de intervalo abiertos. Ejemplos:[0 .. 1]
,[1 .. +inf[
,]-inf .. -5]
.Los parámetros pueden ser de cualquier tipo numérico o
BOOL
. Los parámetros deben tener un valor inicial que se utilice como valor predeterminado. Puede especificar la unidad del parámetro con el atributo opcionalsm_kin_param_unit
(ejemplo: "rad", "°", "grados"). Debes usar la unidad "u" para longitudes y distancias. La aplicación y la escala de las unidades determinan si estas unidades son "mm", "cm" o "m".Si no hay documentación de biblioteca disponible para el bloque de funciones, el comentario del elemento FB se muestra en las posiciones respectivas como opción alternativa.
El idioma configurado en CODESYS es el idioma que se muestra para la documentación de LibDoc. Si una localización no está disponible en este idioma, se utiliza el idioma predeterminado de la biblioteca.
Los nombres de eje de la cinemática están definidos por el atributo FB
sm_kin_axes
. El valor del atributo es una lista de nombres de ejes (ejemplo: "A1, A2, A3").Se especifica un icono opcional con el atributo FB
sm_kin_icon
. El valor se especifica en la forma<image pool>.<identifier>
. El conjunto de imágenes se especifica en relación con el bloque de funciones.Si crea un bloque de función de cinemática personalizado con ejes giratorios (por ejemplo,
Kin_Scara3_Z_Config
), entonces debe usar el concepto de período para estos ejes e implementar elISMKinPeriodHandling
interfaz. Para ejes rotativos, sólo la transformación cinemática inversa (CartesianToAxes
) es responsable del cálculo del ángulo. Entonces CODESYS SoftMotion cambia automáticamente este ángulo al período correcto. Por ejemplo, si la transformación calcula un ángulo en el rango ]-180°, 180°], entonces CODESYS SoftMotion cambia este ángulo al rango [0°, 360°[, siempre que los límites del software de la unidad sean 0° .. 360°. Además, debe implementar laISMKinematicsWithConfiguration3
interfaz. Esta es la única forma de asegurarse de que la cinemática de los movimientos CP funcione sin problemas.En el caso de cinemáticas acopladas con un diseño irregular de cinemáticas de posición y orientación, debe implementar el
ISMCoupledKinematics3
interfaz. De esta forma, el sistema puede detectar si un eje para la cinemática de posición u orientación pertenece o no al número de eje respectivo.Nota: Debe implementar el
ISMKinematicWithConfigurations2.CPConnectible
método de tal manera que la configuración del período se ignora en la comparación. EntoncesCPConnectible
devuelve el valorTRUE
, incluso si la configuración del período es diferente.
Todas las transformaciones inversas tienen una entrada de tipo CONFIGDATA
que contiene una matriz de bytes con información sobre la configuración de la cinemática. Las transformaciones directas tienen una salida correspondiente. Las cinemáticas con una configuración tienen que implementar el ISMKinematicWithConfigurations
interfaz. Cada una de estas cinemáticas incluye un bloque de función que tiene que implementar el ISMConfigurationData
interfaz (función para la serialización de los datos de configuración). El nombre de este bloque de funciones debe ser el mismo que cinemática más el sufijo _config
. Puede utilizar este FB para modificar la configuración en la aplicación (mediante el bloque de función SMC_SetKinConfiguration
cuadra). Sin embargo, la cinemática no debe contener ninguna instancia del FB correspondiente.
Sugerencia
Para obtener instrucciones paso a paso, consulte la Cinemática personalizada capítulo.