需要的硬件以及相应软件,脉冲控制线缆以及编程电缆等:
- 硬件:TM241CEC24T(源型晶体管输出) PLC 一套
- Lexium 28(以下简称为 LXM28) 伺服系统一套,包含 CN1 插头或安装套件
- 软件:SoMachine V4.X
1、Lexium 28 的参数设置
P1-01 = 0000;控制模式为 Pt,即脉冲控制;
P1-01 参数定义如下:
A 位表示 LXM28 的控制类型
C位表示 LXM28 的旋转方向
D位表示运行模式转换后输入与输出信号的功能定义
- 0:P2-10~P2-22 参数在新的运行模式中保持上一次设置不变
- 1:P2-10~P2-22 参数在新的运行模式中被设置为预设值
P1-00 = 0002;脉冲类型为脉冲 方向,脉冲输入来源为低速脉冲输入接口;
P1-00 参数定义如下:
A 位表示脉冲输入的类型,
C 位表示输入信号的极性,如下:
B 位表示脉冲输入的频率,如下:
D 位表示脉冲输入的来源,如下:
- P1-34=6 ms;加速时间
- P1-35=6 ms;减速时间
- P1-44=128;电子齿轮比的分子
- P1-45=1;电子齿轮比的分母
以上两个参数决定了 LXM28 接收 10000 个脉冲时,伺服电机旋转一圈;LXM28 的伺服系统默认为 1280000 个脉冲/圈;可根据现场工艺要求设置合适的电子齿轮比
- P1-55 = 伺服电机的最高转速;设置为伺服电机的最高转速
当改变以上参数的设定值时,按下 ENT 键直至设定值闪烁之后再松开,则该数值被存储在对以上参数设置完成后,将 LXM28 断电,等待显示面板没有任何显示时再重新上电
2、M241 PLC 的脉冲输出
PLC 的脉冲输出(源型晶体管输出)端子定义,如下:
- V0 :连接外部 24VDC 电源的正极
- V0-:连接外部 24VDC 电源的负极
- Q0~Q3:源型晶体管输出
3、LXM28 的脉冲输入
低速端口,可接受晶体管或差分脉冲输入信号,如下:
高速端口,可接受高速差分脉冲输入信号,如下:
4、M241 PLC 与 LXM28 的脉冲控制接线方法
低速端口脉冲输入,如下:
TM241***T(源型晶体管输出) LXM28
本例中使用 TM241CEC24T PLC,故采用此接线方法
TM241***U(漏型晶体管输出) LXM28
线驱动输出 LXM28
高速端口脉冲输入,如下:
线驱动输出 LXM28
5、SoMachine V4.X 硬件组态
首先,新建一个 TM241CEC24T 的 PLC ,如下:
双击 MyController,对启动方式进行设置,如下:
双击 Pulse_Generators,并配置为 PTO 功能,如下:
设置脉冲的输出类型为脉冲 方向,最高输出脉冲频率 100 KHz,启动/停止脉冲频率为100 Hz,加减速单位为 ms,最大加减速时间为 10ms(功能块应用时的加减速时间不得小于此值),以及快速停止加减速时间为 20ms
可根据控制要求来选择是否需要原点输入信号、Z 相输入信号以及脉冲位置捕捉功能输入信号,这三个输入信号如果需要相应的功能时则可直接选择为使用,并且这三个输入信号的 I 点在 PLC 中是固定的,因此,在图纸以及程序设计时需要特别注意,本例中只启用了原点输入信号,用来执行原点回归功能
如果程序中有多于一路的 PTO 时,可以通过点击下面的 “ ” 按钮来进行添加,如下:
在 SoMachine 平台的 PLC 中,PTO 的使用编号必须从 0 开始,即使只使用一路 PTO 功能,也只能从 PTO_0 开始,即使用 Q0 与 Q1 输出点作为脉冲输出,而不能跨过 Q0 与 Q1 直接使用 Q2 与 Q3 输出点作为脉冲输出
在 PTO 控制中,伺服系统的 DI 输入信号的功能需要通过 P2-10~P2-17 参数来进行设置
6、SoMachine V4.X 程序编程
在 Application 中,添加一个 POU,并选择为 CFC 编程语言,如下:
添加完成 POU 后,如下所示,点击 POU 并拖拽至 MAST 任务下,如下:
7、如何在程序中添加控制功能块
在工具箱中选择 Box,并放在 POU 中,如下:
点击 “???” 并点击右侧的按钮,选择所需要输入的功能块名称,如下:
8、LXM28 在 PTO 控制下的各个功能块的应用
在 LXM28 的控制功能块中,所有的功能块的轴名称必须与以下 PTO 设置中的名称一致, 如下:
在以下所有功能块中,位置单位为 ppr,速度单位为 Hz,加速度单位为 ms 或 Hz/ms, 减速度单位为 ms 或 Hz/ms,本例中,加减速度单位均为 ms
使能功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称Enable:轴使能输入信号
- DriveReady:驱动器就绪输入信号,如果有外部反馈的驱动器就绪输入信号时,则写入对应的输入点,如果没有则写为 TRUE
- LimP:轴的正向限位,该输入信号为 TRUE 时,功能块正常工作;如果有外部正向限位时, 则写入对应的输入点,如果没有则写为 TRUE
- LimN:轴的负向限位,该输入信号 为 TRUE 时,功能块正常工作;如果有外部正向限位时,则写入对应的输入点,如果没有则写为 TRUE
- Status:轴使能完成信号
- DriveEnable:轴使能输出信号,如果需要由 PLC 输出信号来控制使能时,可使用该信号Error:轴使能报错信号
- ErrorID:轴使能错误代码
故障复位功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- Done:功能块执行完成信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
停止功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- Deceleration:停止时的减速度,不得低于 PTO 设置中的最大减速度值
- JerkRatio:阶跃率,可理解为 S 曲线的百分比,此值为 0 时,梯形加减速曲线,不为 0 时,则加减速曲线为 S 曲线
- Done:功能块执行完成信号Busy:功能块执行过程中信号
- CommandAborted:功能块被中断信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
设置位置功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- Position:设置位置值
- Done:功能块执行完成信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
原点回归功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- Mode:原点回归模式,如下:
- Position:原点回归完成之后的位置设置值
- Direction:原点回归的方向,仅 mcPositiveDirection 和 mcNegativeDirection 有效HighVelocity:原点回归的第一速度,即查找原点信号的速度
- LowVelocity:原点回归的第二速度,即离开原点信号的速度
- Acceleration:加速度
- Deceleration:减速度
- Offset:原点回归的偏移位置
- JerkRatio:阶跃率,可理解为 S 曲线的百分比,此值为 0 时,梯形加减速曲线,不为 0 时,则加减速曲线为 S 曲线
- Done:功能块执行完成信号Busy:功能块执行过程中信号
- Active:轴被功能块激活信号
- CommandAborted:功能块被中断信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
速度控制功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- ContinuousUpdate:持续更新速度相关参数的输入信号,在功能块被触发之后,此输入信号为 TRUE 时,则速度相关参数的值被应用
- Velocity:目标速度
- Acceleration:加速度
- Deceleration:减速度
- Direction:方向信号
- BufferMode:缓冲模式,
- JerkRatio:阶跃率,可理解为 S 曲线的百分比,此值为 0 时,梯形加减速曲线,不为 0 时,则加减速曲线为 S 曲线
- InVelocity:已到达目标速度信号
- Busy:功能块执行过程中信号
- Active:轴被功能块激活信号
- CommandAborted:功能块被中断信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
此功能块在 Execute 输入信号为 FALSE 时,轴仍以该功能块的目标速度运行,直至被错误终止或通过 MC_Stop_PTO 功能块停止
相对定位功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- Distance:相对定位模式下的目标位置
- Velocity:目标速度
- Acceleration:加速度
- Deceleration:减速度
- BufferMode:缓冲模式,
- JerkRatio:阶跃率,可理解为 S 曲线的百分比,此值为 0 时,梯形加减速曲线,不为 0时,则加减速曲线为 S 曲线
- Done:定位完成信号
- Busy:功能块执行过程中信号
- Active:轴被功能块激活信号
- CommandAborted:功能块被中断信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
绝对定位功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- Position:绝对定位模式下的目标位置
- Velocity:目标速度
- Acceleration:加速度
- Deceleration:减速度
- BufferMode:缓冲模式,
- JerkRatio:阶跃率,可理解为 S 曲线的百分比,此值为 0 时,梯形加减速曲线,不为 0 时,则加减速曲线为 S 曲线
- Done:定位完成信号
- Busy:功能块执行过程中信号
- Active:轴被功能块激活信号
- CommandAborted:功能块被中断信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
此功能块必须在建立了绝对坐标以后才可使用,因此,在执行前必须执行 MC_Home_PTO 或 MC_SetPosition_PTO 功能块之后才可执行
位置捕捉功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:触发功能块输入信号
- WindowOnly:TRUE:只捕捉 FirstPosition 至 LastPosition 位置之间的信号FirstPosition:位置捕捉区间下限
- LastPosition:位置捕捉区间上限
- TriggerLevel:TRUE:捕捉信号的上升沿启动捕捉,
- FALSE:捕捉信号的下降沿启动捕捉Done:功能块执行完成信号
- Busy:功能块执行过程中信号
- CommandAborted:功能块被中断信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
- RecordedPosition:捕捉的位置值
读取轴错误功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Enable:功能块使能信号
- Valid:功能块正常执行信号
- Error:功能块执行错误信号
- ErrorID:错误代码,详细描述如下:
- AxisErrorID:轴错误代码,参考以上索引值为 1000 的表格
读取轴状态功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Enable:功能块使能信号
读取轴运动状态功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Enable:功能块使能信号
读取轴的实际位置功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Enable:功能块使能信号
- Valid:功能块正常执行信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
- Position:读取的位置值
读取轴的实际速度功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Enable:功能块使能信号
- Valid:功能块正常执行信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
- Velocity:读取的速度值
写入轴的任意参数功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Execute:功能块触发信号
- ParameterNumber:如下:
- Value:写入的数值
- Done:功能块执行完成信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
读取轴的任意参数功能块
- Axis:功能块所控制的轴,本例中轴的名称为 PTO_0,因此写入此名称
- Enable:功能块使能信号
- ParameterNumber:如下:
- Valid:功能块正常执行信号
- Error:功能块执行错误信号
- ErrorID:功能块执行错误代码
- Value:读取的参数值