施耐德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 控制器应用及编程进阶

 

 

Tags: