作者:标
链接:https://mp.weixin.qq.com/s/ajeZpJ5JwptYhEIfdGMAfw
Canopen总线是施耐德PLC的总线通讯,PLC M258是支持canopen总线的其中一个PLC,当然还有其他的PLC。伺服中,Lexium 23、Lexium 28和Lexium 32 A等伺服驱动器都支持canopen总线。总线控制的好处是编程方便,硬件接线简单,接线不需要接控制线,只需要接网线(通讯线)即可。
下面就介绍M258 PLC控制Lexium 23的编程操作。
单轴回原点操作
单轴回原点控制要求:按一个按钮,电机X轴(单轴)回原点。
按控制要求,写PLC程序步骤如下:
1、新建“添加数据单元类型”,建立一个结构体的变量,结构体命名为“Axis_Attribute”。如下图。
图5-1-1
2、建立控制伺服动作的所有共同变量名称,如下图。这一节只用到几个变量,后面的章节的会用到其他的变量。
图5-1-2
3、如图,添加对象“A02_Ctrl_Lexium”程序,程序语言用“CFC连续功能图”。
图5-1-3
4、在“A02_Ctrl_Lexium”程序里,用“MC_Power_LXM23”、“MC_Reset_LXM23”、“MC_Stop_LXM23”和“MC_Home_LXM23”这此功能块来实现轴的回原点。基中“MC_Power_LXM23”用来激活输出的,“MC_Reset_LXM23”用来复位,“MC_Stop_LXM23”用来停止输出,“MC_Home_LXM23”用来回原点操作。如下图。
图5-1-4
功能块共有的输入输出说明如下:
MC_Home_LXM23:回原点功能块。
主要的输入输出的说明如下:
MC_Power_LXM23:激活或关闭输出级功能块。
MC_Reset_LXM23:用于故障确认、复位功能块
MC_Stop_LXM23:用于停止当前的运动,通过功能块停止运行模式
运行回原点作前,首先“R3X_Variable.xCmdEnPwr”为TRUE。当“R3X_Variable.xStatEnbl”为TRUE时(即电机输出级已启用),才可以回原点操作。
回原点时,当“R3X_Variable.xCmdHoming”为TRUE时,回原点开始。当“R3X_Variable.xHomeDone”为TRUE时,回原点完成。
其中“MC_Home_LXM23”功能块中的“HomingMode”是回原点模式,这里的值写的是1,即选用方式1回原点操作。回原点模式有35种方式。分别如下:
(1) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到反向限位后,电机向相反方向运行,检测到反向限位下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(2) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到正向限位后,电机向相反方向运行,检测到正向限位下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置 为零减速后的数值C_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(3) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(4) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(5) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(6) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(7) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警 。
(8) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行,检测到原点信号下降沿后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(9) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后,电机向相反方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后,电机向相反方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警 。
(10) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(11) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(12) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行,检测到原点信号下降沿后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(13) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后,电机向相反方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后,电机向相反方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(14) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后,电机向相同方向运行至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(15) 保留,默认为上一次有效的原点回归模式。
(16) 保留,默认为上一次有效的原点回归模式。
(17) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到反向限位后,电机向相反方向运行,检测到反向限位下降沿时停止(第二段速),当前位置被设置为 P5-76 参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(18) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到正向限位后,电机向相反方向运行,检测到正向限位下降沿时停止(第二段速),当前位置被设置为 P5-76 参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(19) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(20) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(21) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(22) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(23) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(24) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(25) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(26) 原点回归启动后,电机朝正向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(27) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(28) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿后停止(第二段速)当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(29) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位负值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(30) 原点回归启动后,电机朝反向限位方向运转(第一段速),遇到原点信号上升沿后,电机向相同方向运行,检测到原点信号下降沿时停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到反向限位后,电机向相反方向运行(第一段速),检测到原点信号上升沿后,电机向相反方向运行,检测到原点信号下降沿后停止(第二段速),当前位置被设置为 P5-76参数设置脉冲数所换算的单位正值减速后的数值+MC_Home 功能块的 Position 数值(单位值);运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警。
(31) 保留,默认为上一次有效的原点回归模式。
(32) 保留,默认为上一次有效的原点回归模式。
(33) 原点回归启动后,电机朝反向限位方向运转至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值),可重复操作;运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(34) 原点回归启动后,电机朝正向限位方向运转至电机 Z 相停止(第二段速),当前位置被设置为零减速后的数值+MC_Home 功能块的 Position 数值(单位值),可重复操作;运行时遇到正向限位后,电机停止,伺服驱动器显示 AL015 报警;运行时遇到反向限位后,电机停止,伺服驱动器显示 AL014 报警。
(35) 原点回归启动后,将 MC_Home 功能块的 Position 数值(单位值,伺服驱动器上显示的是换算的脉冲数)设置为当前位置。
5、在主程序里写上回原点动作程序。
图5-1-5
这里引入了一个“CASE...OF...END CASE”语句,PLC开机时,只要令“xServoR3_X_Home_Exe”为TRUE时,电机轴就回原点了,当回原点成功,“gxR3X_Homed”为TRUE。
6、将复位按键定义,定义“Ib_101_RST”为按键输入。
7、在主程序里添加按键回原点动作。由于电机轴回原点前需要确保电机已激活输出,所以可以在开机后3秒自动激活输出,激活成功后再才能回原点。
图5-1-7
这里开机3秒后,电机轴激活输出,当复位按键“Ib_101_RST”按下,程序会执行“CASE...OF...END CASE”语句里的程序,电机轴开始回原点。
(版权提示:本文版权为原作者所有,如需转载请自行联系获得授权。如需投稿请在工控论坛微信公众号发送“投稿”或联系论坛管理员jint)
—————————————————————
往期阅读:
工控论坛往期精彩文章主页
最后修改:2020/7/22 15:08:47