一、CODESYS Softmotion简介
可编程逻辑控制器负责逻辑控制。P西门子(SIMATIC)、罗克韦尔(Allen-Bradley)、ABB(AC500) 都是PLC;机器人控制器重点在于机器人运动控制,ABB 公司的IRC5、KUKA的KRC4、KEBA伺服控制器、FANUC的RobotR-30iA。
1.1 功能
- POU(Programming Orignization Unit)是符合PLCopen的库,实现单轴和多轴横向协同运动
- 电子凸轮传动
- CNC控制
- 轻松开发多轴运动控制器
- 支持PLCopen Part4标准功能块
- 可通过集成凸轮编辑器对凸轮功能进行图形化规划
2.2 特点
- 运动控制变成独立于总线和驱动器
- 支持多标准驱动器
- CODESYS编程环境中即可配置总线和驱动
- 运动控制功能块POU库
- 集成编辑器中设计电子凸轮
- 支持G代码规划和编辑复杂动作
- PLCopen Motion Part4和轴组编辑器开发多轴机器人控制器
- 库函数集。包括集合数据处理(路径预处理)、样条曲线和CNC刀具位置校正等
- 包含丰富的交换库(用于备份和交换数据用),用以支持不同运动学的工业机器人的开发,例如Delta机器人,Scara机器人,Portal机器人以及龙门式机器人等。
- 支持在线的CAM编辑器和CNC编辑器,机器操作员可以图形化的方式创建和编辑CNC程序
CODESYS将运动控制和逻辑控制合二为一,主要由编程系统和实时系统,形成了Softmotion(CNC)工具包,可以实现单轴运动到复杂CNC、机器人应用。
2.3 内容
- CODESYS SoftMotion Basic:主站和从站的PLC POU库工具包及CAM编辑器和可视化编程模板
- CODESYS SoftMotion CNC+ Robotics:除了CODESYS SoftMotion 中一些可用的库外,还包含CNC功能的POU库和运动学交换库和对应可视化模板,还支持PLCopen part4编程,并提供三位CNC编辑器和轴组编辑器
2.4 应用
-
三足机器人:并联运动(转换功能块);并联可视化;EtherCAT伺服驱动配置。 -
标签机/凸轮应用:支持CAM编辑器;基于PLCopen的功能块;可视化功能;用作主引脚的虚拟轴;CANopen伺服驱动。 -
四轴码垛机器人(四个旋转轴,一个水平夹具装置)。 -
六轴通用机器人(六个旋转轴,末端TCP位姿控制)。
二、如何使用CODESYS SoftMotion?
使用Softmotion首先要解决设备实时性问题。这里我用了CODESY Control for Raspberry Pi SL 设置树莓派为实时设备。 在Windows根据不同需求可以选择不同的Runtime:
2.1、CODESYS SoftMotion RTE SL产品
1.1 CODESYS Runtime SL 产品家族介绍
目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个现场总线: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。
1.2 SoftMotion 基本框架
最左边表示软件层别。最右边是其层别描述:
- CODESYS层,运动设计与配置;
- 用户程序层,规划运动与执行;编写运动程序时,可能需要用到库
SM3_Basic SM3_CNC 和SM3_Robotics ,还有一个非常重要的轴接口AXIS_REF_SM3 - Runtime层,驱动器接口,虚轴、位置闭环,最底下是镜像CANopen等底层总线;
上图中,
- SM3_Basi:所有SoftMotion应用程序基本库,符合PLCopen标准第1、2部分,可以控制单轴或者两个轴(电子凸轮和齿轮)的主动和从动运动。
- SM3_CNC:基于SM3_Basoc库。除了运动学变换功能块外,还提供了轨迹生成、路径预处理和执行所需要的所有POU
- SM3_Robotic:包含PLCopen第四部分有关机器人技术功能块,其中SM_Transformation库包含支持的运动学并转换
SM3_Basic中含有驱动器接口,负责IEC程序与驱动器之间的通信。对于支持的驱动器,CODESYS SoftMotion提供了此驱动器接口的库。
驱动器配置界面: 上图是用户驱动器配置界面,它用来设置驱动器硬件的结构和配置,CODESYS将会创建一个IEC功能块代表驱动器。用户无需任何额外操作就可以以驱动器通信。
上图是CAN编辑器,图形化或者表格形式描述凸轮,之后生成凸轮数据结构和实例,应用程序可以通过POU访问它。
上图是CNC编辑器。文本编辑器或者图形编辑器生成CNC路径。
上图是机器人轴组配置界面。轴组定义了几个机械相关轴之间的关系,使用轴组配置器,可以选择和配置使用的运动学,创建对应的机器人模型。
1.3 PLCopen简介
就和STL于C++一样,接口相同但是不同平台实现不同,CODESYS运动库就是其中的一个比较好的实现。
PLCopen定义轴的状态机: Synchronized Motion主从齿轮的时候会用上的东西。
下面是Codesys的符合标准实现的功能块: 同时,CODESYS还定义了电机轴接口:AXIS_REF_SM3 ,用户在界面上进行的操作其实就是在修改AXIS_REF_SM3 实例,或者其派生。如。轴的类型、限位、速度曲线类型、动态限制和减速比等。
如设置减速比:
|