自定义脉冲输出功能块FB_MotionCtrl_PTO使用说明
目录
自定义脉冲输出功能块FB_MotionCtrl_PTO使用说明目录前言:下载地址:功能块库.compiled-library提供:用户单位换算:换算关系公式:该库提供视图控制功能如下:设备树中Pulse_Generators的脉冲PTO配置:功能块调用:(PTO_0为设备树中脉冲输出的实例名称)输入管脚说明输出管脚说明程序中带地址变量与功能块的结构体变量关联示例:全局的带地址变量声明代码逻辑实现故障信息:
前言:
该自定义功能块降低了M241脉冲输出功能的使用难度,特别是对施耐德PTO控制功能块不熟悉的工程师有较大的帮助。只需要对PTO硬件进行简单配置后就可以使用功能块来控制输出,功能块提供了用户工程量单位到脉冲输出的自动转换,省去了用户单位转换的烦恼。
该功能优化了功能块的调用逻辑,不扫描未执行的功能块,从而降低了程序的执行时间,一些对程序执行周期要求严格的应用有一定的优化效果。
下载地址:
下载连接为归档工程文件,在打开归档文件时选择导入所有库文件即可将该库加入本地电脑中。
链接:https://pan.baidu.com/s/1SwzXTmtNiyX_ANm89EBn-w
提取码:rji9
功能块库.compiled-library提供:
-
位置设置SetPos
-
回原点控制Home
-
点动控制Jog
-
速度模式控制MoveVel
-
相对定位控制MoveRel
-
绝对定位控制MoveAbs
用户单位换算:
换算关系公式:
示例:若机械减速比为3:1,设定500个脉冲i_rUintPlus
对应丝杆导程(用户工程单位i_rUeserUint
)5mm
则:
该库提供视图控制功能如下:
设备树中Pulse_Generators的脉冲PTO配置:
配置PTO输出模式,A输出位置,B输出位置,软件限位等可以根据实际需求选择,但加速度/减速度单位必须为赫兹/毫秒,如果需要执行MC_Home功能的话,必须配置Ref输入,Ref输入位置可以根据实际需求选择。
功能块调用:(PTO_0为设备树中脉冲输出的实例名称)
-
St语言下:
PROGRAM SR_Main
VAR
fbMotionCtrl_PTO_0 : fbMotionCtrl_PTO.FB_MotionCtrl_PTO;
stAxisCtrl_PTO_0 : fbMotionCtrl_PTO.ST_PTOCtrl_InOut;
END_VAR
fbMotionCtrl_PTO_0(iq_ptAxisRef:= ADR(PTO_0), iq_stAxisCtrlStr:= stAxisCtrl_PTO_0);
-
LD语言下:
输入管脚说明
管脚变量名称 | 变量类型 | 默认值 | 功能描述 |
---|---|---|---|
i_xVisual_Enable | BOOL | 激活视图控制功能 | |
i_sAxisName | STRING(16) | 'PTO_0' | 视图中的轴名称 |
i_xLimP | BOOL | TRUE | 正向限位 |
i_xLimN | BOOL | TRUE | 反向限位 |
i_xCMDEnable | BOOL | PTO使能 | |
i_xCMDHome | BOOL | 回原点命令,如果回原点模式为0时,执行的为SetPos | |
i_xCMDAbs | BOOL | 绝对定位命令 | |
i_xCMDVel | BOOL | 连续速度命令 | |
i_xCMDJogFwd | BOOL | 正向点动命令 | |
i_xCMDJogRev | BOOL | 反向点动命令 | |
i_xCMDStop | BOOL | 停止命令 | |
i_xCMDReset | BOOL | 复位命令 | |
i_xCMDSetPos | BOOL | 设置位置命令 | |
i_rGearIn | REAL | 1.0 | 减速机-输入 |
i_rGearOut | REAL | 1.0 | 减速机-输出 |
i_rUintPlus | REAL | 10000.0 | 脉冲数 |
i_rUeserUint | REAL | 360.0 | 脉冲数对应的用户单位 |
i_rSetPos | REAL | 0.0 | 设置位置-位置值 |
i_rHomePos | REAL | 0.0 | 原点位置-偏移值 |
i_enHomeMode | PTO_HOMING_MODE | ShortReference_Reversal | 回原点-模式 |
i_enHomeDir | MC_Direction | mcPositiveDirection | 回原点-方向 |
i_rHomeHighVel | REAL | 360.0 | 回原点-高速 |
i_rHomeLowVel | REAL | 36.0 | 回原点-低速 |
i_rVel | REAL | 360.0 | 速度模式-速度 |
i_rJogVel | REAL | 180.0 | 点动模式-速度 |
i_enVelMode | MC_BUFFER_MODE | mcAborting | 速度模式-缓冲模式 |
i_rAcc | REAL | 3600.0 | PTO加速度 |
i_rDec | REAL | 3600.0 | PTO减速度 |
i_rAbsPos | REAL | 绝对定位-位置 | |
i_rAbsVel | REAL | 360.0 | 绝对定位-速度 |
i_enAbsMode | MC_BUFFER_MODE | mcAborting | 绝对定位-缓冲模式 |
i_rRelDis | REAL | 相对定位-距离 | |
i_rRelVel | REAL | 360.0 | 相对定位-速度 |
i_enRelMode | MC_BUFFER_MODE | mcAborting | 相对定位-缓冲模式 |
i_rStopDec | REAL | 36000.0 | PTO停止减速度 |
i_iStopJerk | INT | 50 | PTO停止的Jerk |
i_iACCJerk1 | INT | 50 | 加速段-Jerk1 |
i_iACCJerk2 | INT | 50 | 加速段-Jerk2 |
i_iDECJerk1 | INT | 50 | 减速段-Jerk1 |
i_iDECJerk2 | INT | 50 | 减速段-Jerk2 |
输出管脚说明
管脚变量名称 | 变量类型 | 功能描述 |
---|---|---|
q_wBErrorSignal | WORD | |
q_wSErrorSignal | WORD | |
q_xEnableSta | BOOL | MC_Power_PTO的状态 |
q_xJogBusy | BOOL | 点动控制中 |
q_xHomeDone | BOOL | 回原点完成 |
q_xHomeBusy | BOOL | 回原点中 |
q_xAbsDone | BOOL | 绝对定位完成 |
q_xAbsBusy | BOOL | 绝对定位中 |
q_xRelDone | BOOL | 相对位移完成 |
q_xRelBusy | BOOL | 相对位移中 |
q_xInVel | BOOL | 速度模式达到设定速度 |
q_xVelBusy | BOOL | 速度模式运行中 |
q_xStopDone | BOOL | PTO停止完成 |
q_enErrorID | PTO_ERROR | PTO故障ID |
q_xDisable | BOOL | PTO未使能 |
q_xStandStill | BOOL | PTO静止 |
q_xContinuousMotion | BOOL | 连续速度运行中 |
q_xError | BOOL | 故障 |
q_xIsHomed | BOOL | 为True时参考点有效,允许绝对运动 |
q_rActPos | REAL | 当前实际位置(经齿轮比后的用户单位位置) |
q_rActVel | REAL | 当前实际速度(经齿轮比后的用户单位速度) |
程序中带地址变量与功能块的结构体变量关联示例:
全局的带地址变量声明
VAR_GLOBAL
G_xCMDEnable_PTO0 AT %MX100.0 : BOOL;
G_xCMDHome_PTO0 AT %MX100.1 : BOOL;
G_xCMDAbs_PTO0 AT %MX100.2 : BOOL;
G_xCMDRel_PTO0 AT %MX100.3 : BOOL;
G_xCMDVel_PTO0 AT %MX100.4 : BOOL;
G_xCMDJogFwd_PTO0 AT %MX100.5 : BOOL;
G_xCMDJogRev_PTO0 AT %MX100.6 : BOOL;
G_xCMDStop_PTO0 AT %MX100.7 : BOOL;
G_xCMDReset_PTO0 AT %MX100.8 : BOOL;
G_xCMDSetPos_PTO0 AT %MX100.9 : BOOL;
END_VAR
代码逻辑实现
IF NOT(stAxisCtrl_PTO_0.i_xVisual_Enable) THEN //视图控制未激活时
stAxisCtrl_PTO_0.i_xCMDEnable := GVL.G_xCMDEnable_PTO0;
stAxisCtrl_PTO_0.i_xCMDHome := GVL.G_xCMDHome_PTO0;
stAxisCtrl_PTO_0.i_xCMDAbs := GVL.G_xCMDAbs_PTO0;
ELSE //视图控制激活时
GVL.G_xCMDEnable_PTO0 := stAxisCtrl_PTO_0.i_xCMDEnable;
GVL.G_xCMDHome_PTO0 := stAxisCtrl_PTO_0.i_xCMDHome;
GVL.G_xCMDAbs_PTO0 := stAxisCtrl_PTO_0.i_xCMDAbs;
END_IF
故障信息:
参照ESME软件或Somoachine软件中关于M241的功能块MC_ReadStatus_PTO