施耐德Lexium 28伺服的 CANopen 现场总线通讯
要在当今的数字时代保持竞争力,机器制造商必须力求创新。智能机器更加互联互通、更灵活、高效和安全,使机器制造商能以前所有未的方式进行创新。Lexium 28是EcoStruxure机器自动化平台的一部分。
Lexium28系列是由交流伺服驱动器LXM28与交流伺服电机BCH2组成的伺服产品。
Lexium28系列提供预定产品组合,以满足运动控制应用的需求,优化装置的性能。
伺服电机和伺服驱动器的组合基于功率等级:伺服电机和伺服驱动器具有相同的功率等级。
伺服驱动器及其配套伺服电机的组合产品旨在涵盖0.05 kW至4.5 kW(0.067至 6.03hp)额定功率,支持200..240V市电电源电压。
Lexium28伺服驱动器交付时不包括EMC(电磁兼容)滤波器,需要另配EMC(电磁兼容)滤波器使用才能达到电磁兼容抗扰性要求。
Lexium 28伺服驱动器的防护等级为IP 20。
BCH2电机的额定转矩为0.16Nm至28.6Nm,额定转速为1,500至3,000rpm,具体取决于电机型号。BCH2电机提供不同水平的电机惯量,因而适用于各种应用。外型紧凑 Lexium28伺服驱动器尺寸紧凑,可轻松安装于较小空间,从而缩小设备尺寸并降低设备成本。
软件:SoMachine V4.X:
SoMachine V4.X 硬件组态
首先,新建一个 TM241CEC24T 的 PLC ,如下:
双击 MyController,对启动方式进行设置,如下:
双击 CAN_1,设置 CANopen 的通讯速率为 1M,如下:
右单击 CAN_1,添加一个新设备,如下:
添加 CANopen Performance 主站,如下:
添加完成后,如下:
右单击 CANopen_Performance 并选择添加设备,如下:
添加完成后,如下:
双击 Lexium_28,设置相关参数,如下:
设置节点地址为 1,如下:
如果需要初始化设置参数,则可添加在服务数据对象中,如下:
在 CANopen 通讯中,可以通过设置 Feed 与 Shaft Revolutions 两个参数来定义伺服电机的每转应用单位数,注意,这个地方是自由定义的应用单位,本例中 Feed 设置为10000,Shaft Revolutions 设置为 1,则表示 10000 个应用单位,伺服电机旋转 1 转16#420A:16#00 ~ 16#4211:16#00 对应 P2-10 ~ P2-17 的参数功能,即 DI 输入信号的功能定义,可参考 LXM28 的操作手册来进行初始化的设置,或者直接在 LXM28 中设置,而不在此服务数据对象中进行初始化。
Max Acceleration 与 Max Deceleration 为最大加速度与最大减速度,单位为 units/s2
Profile Acceleration 与 Profile Deceleration 为操作模式下的加速度与减速度,单位为units/s2
Quick stop Deceleration 为快速停止模式下的减速度,单位为 units/s2
SoMachine V4.X 程序编程
在 Application 中,添加一个 POU,并选择为 CFC 编程语言,如下:
添加完成 POU 后,如下所示,点击 POU 并拖拽至 MAST 任务下,如下:
如何在程序中添加控制功能块
在工具箱中选择 Box,并放在 POU 中,如下:
点击 “???” 并点击右侧的按钮,选择所需要输入的功能块名称,如下:
各个功能块的应用
在 LXM28 的控制功能块中,所有的功能块必须使用 SEM_LXM28. 的前缀,否则编译时报错,如下:
获取从站通讯状态功能块
在控制 LXM28 之前,我们通常会判断 CANopen 从站的通讯状态,用作控制 LXM28 使能或读取参数的先决条件;多个从站时应使用多个此功能块,用来获取不同从站的通讯状态。
NETWORK:网络 ID,默认为 1
ENABLE:激活功能块
TIMEOUT:功能块执行超时时间,单位为 ms
DVICE:读取从站通讯状态的站号,本例中为 1
CONFIRM:功能块执行完成
ERROR:功能块执行错误
STATE:读取从站通讯状态,当从站处于正常通讯状态时,STATE = 5
在以下所有功能块中,位置单位为 units,速度单位为 units/s,加速度单位为 units/s2,减速度单位为 units/s2。
使能功能块
Axis:功能块所控制的轴,本例中轴的名称为 Lexium_28,因此写入此名称
Enable:轴使能输入信号,可判断从站通讯状态后再根据程序条件进行使能
Status:轴使能完成信号
Error:轴使能报错信号
故障复位功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Done:功能块执行完成信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
停止功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Done:功能块执行完成信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
CommandAborted:功能块被中断信号
设置位置功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Position:设置位置值
Relative:TRUE:输入 Position 的位置被叠加至轴的实际位置;FALSE:输入 Position 的位置被设置为轴的实际位置
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
Done:功能块执行完成信号
原点回归功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Position:位置值,详细描述如下:
HomingMode:原点回归模式,详细描述如下:
亦可参考《施耐德电气 SoMachine 控制器应用技巧 120 例》一书,书中有详细的原点回归动作说明。
VHome:查找原点的目标速度,详细描述如下:
VOutHome:离开原点的目标速度,详细描述如下:
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
Done:功能块执行完成信号
点动功能块
Axis:功能块所控制的轴
Done:功能块执行完成信号
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
速度控制功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Velocity:目标速度
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
InVelocity:已到达目标速度信号
此功能块在 Execute 输入信号为 FALSE 时,轴仍以该功能块的目标速度运行,直至被错误终止或通过 SEM_LXM28.MC_Stop_LXM28 功能块停止。
相对定位功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Distance:相对定位模式下的目标位置
Velocity:目标速度
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
Done:定位完成信号
绝对定位功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Position:绝对定位模式下的目标位置
Velocity:目标速度
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
Done:定位完成信号
此 功 能 块 必 须 在 建 立 了 绝 对 坐 标 以 后 才 可 使 用 , 因 此 , 在 执 行 前 必 须 执 行SEM_LXM28.MC_Home_LXM28或 SEM_LXM28.MC_SetPosition_LXM28 功能块之后才可执行。
位置捕捉功能块
Axis:功能块所控制的轴
Execute:触发功能块输入信号
Unit:设置为 1 时,使用捕捉输入信号 1,即 DI7,P2-16 参数需设置为 16#11C;设置为 2 时,使用捕捉输入信号 2,即 DI6,P2-15 参数需设置为 16#11D
Done:功能块执行完成信号
Busy:功能块执行过程中信号
CommandAborted:功能块被中断信号
Error:功能块执行错误信号
Valid:功能块正常执行信号
RecordedPosition:捕捉的位置值
读取轴错误功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
ErrorID:错误代码,详细描述如下:
ErrorFB:对应识别出错误的功能块的层级名
读取轴状态功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
读取轴运动状态功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
读取轴的输入信号状态功能块
Input:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
InputNumber:读取的 DI 点的编号,设置 1 ~ 8 对应 DI1 ~ DI8 点
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
Value:读取的 DI 点的状态,TRUE:高电平,FALSE:低电平
Inputs:所有输入点的状态,WORD,Bit 0 ~ 7 对应 DI1 ~ DI8 点的状态,TRUE:高电平,FALSE:低电平
读取轴的实际位置功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
PositionType:位置类型,0:电机的实际位置;1:运动曲线的给定位置;2:目标位置
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
Position:读取的位置值
读取轴的实际速度功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
VelocityType:速度类型,0:电机的实际速度;1:运动曲线的给定速度
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
Velocity:读取的速度值
读取轴的实际扭矩功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
TorqueType:扭矩类型,0:电机的实际扭矩;1:运动曲线预设的扭矩;2:运动曲线的目标扭矩,单位为 0.1%
Valid:功能块正常执行信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
Torque:读取的扭矩值,-3000 ~ 3000,代表 -300.0% ~ 300.0% 额定扭矩
写入轴的任意参数功能块
Axis:功能块所控制的轴
Execute:功能块触发信号,可判断从站通讯状态后再根据程序条件进行触发
Done:功能块执行完成信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
读取轴的任意参数功能块
Axis:功能块所控制的轴
Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能
Done:功能块执行完成信号
Busy:功能块执行过程中信号
Error:功能块执行错误信号
Value:读取的参数值
Length:读取参数的字节长度
作 者 简 介
李 振
运动控制产品专家
施耐德电气(中国)有限公司
工业自动化业务部 OEM 技术中心
独立编写《施耐德电气 SoMachine 控制器应用技巧 120 例》
参与编写《施耐德 EcoStruxure Machine 控制器应用及编程进阶》