找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10386|回复: 1
收起左侧

CAM电子凸轮功能块

[复制链接]
ID:105323 发表于 2016-2-22 15:06 | 显示全部楼层 |阅读模式

自定义凸轮表:
首先自定义凸轮表声明:
VAR_GLOBAL
D1_CAM :MC_CAM_REF;  凸轮表名字映射
D1_xyva :ARRAY[0..4] OF SMC_CAMXYVA;  凸轮表点映射,数组多少决凸轮点的多少
END_VAR
然后就着手在程序里面编写凸轮表的点坐标。
(*CAM1 Table made*)
D1_CAM.byType:=3;
D1_CAM.strCAMName:='D1_CAM';凸轮表名字
D1_CAM.wCamStructID:=56372;  
D1_CAM.nElements:=5;凸轮表点数
D1_CAM.xStart:=0;起点
D1_CAM.xEnd:=360;终点
D1_CAM.pce:=ADR(D1_xyva);凸轮表地址映射
D1_xyva[0].dX:=0;
D1_xyva[0].dY:=0;
D1_xyva[0].dV:=0;
D1_xyva[0].dA:=0;
自定义数组的数据里面必须包含起点(xya0】)和终点(xEnd.
MC_CAM_REF输入输出引脚定义:
MC_CAM_REF(STRUCT)
这个数据类型是库“SM3_Basic.library”的一部分。它代表一个普通CAM并包含如下元素:
                                                                                                                             
  
组件
  
  
类型
  
  
初始值
  
  
描述
  
  
wCamStructID
  
  
WORD
  
  
16#DC34
  
  
byType
  
  
BYTE
  
  
0
  
  
0=多项式的,1=等距的,2=元素最优化的,非等距的
  
3= XYVA(由主设备位置,从设备位置,速度,加速度组成的特定点的多项式描述)
  
  
byVarType
  
  
BYTE
  
  
0
  
  
1: INT 2: UINT 3: DINT 4: UDINT 5: REAL 6: LREAL
  
  
xStart
  
  
LREAL
  
  
CAM域。主设备的起始位置。
  
  
xEnd
  
  
LREAL
  
  
CAM域。主设备的终止位置。
  
  
nElements
  
  
INT
  
  
元素个数,它依赖于从设备位置、主设备/从设备位置或XYAV点的类型编号。
  
  
nTappets
  
  
INT
  
  
开关动作的个数。
  
  
pce
  
  
POINTER TO  BYTE
  
  
0
  
  
指向SMC_CAMElement或SMC_CamTable的指针。
  
  
pt
  
  
POINTER TO  SMC_CAMTappet
  
  
0
  
  
指向SMC_CAMElement或SMC_CamTable的指针。
  
  
dwTappetActiveBits
  
  
DWORD
  
  
内部变量。
  
  
strCAMName
  
  
STRING
  
  
''
  
  
CAM名称。
  
  
byInterpolationQuality
  
  
BYTE
  
  
1
  
  
1 = 线性插补。
  
3 = 三次方插补。
  
  
bChangedOnline
  
  
BOOL
  
  
FALSE
  
  
内部变量。
  
MC_CAMTABLESELECT(FB)
                                                                                                                                               
  
类型
  
  
初始值
  
  
描述
  
  
VAR_IN_OUT
  
  
Master
  
  
AXIS_REF
  
  
关于主轴,见AXIS_REF_SM3。
  
  
Slave
  
  
AXIS_REF
  
  
关于从轴,见AXIS_REF_SM3。
  
  
CamTable
  
  
MC_CAM_REF
  
  
关于CAM描述,见MC_CAM_REF
  
  
VAR_INPUT
  
  
Execute
  
  
BOOL
  
  
FALSE
  
  
输入值的上升沿将启动该功能块的执行。
  
  
Periodic
  
  
BOOL
  
  
TRUE
  
  
TRUE =周期的, FALSE = 非周期的
  
  
MasterAbsolute
  
  
BOOL
  
  
TRUE
  
  
TRUE = 绝对, FALSE = 相对 坐标
  
  
SlaveAbsolute
  
  
BOOL
  
  
TRUE
  
  
TRUE = 绝对, FALSE = 相对 坐标
  
  
VAR_OUTPUT
  
  
Done
  
  
BOOL
  
  
FALSE
  
  
如果预选已经完成,则为TRUE
  
  
Busy
  
  
BOOL
  
  
FALSE
  
  
当功能块执行还没结束时为TRUE。
  
  
Error
  
  
BOOL
  
  
FALSE
  
  
在功能块内部发生错误的信号。
  
  
ErrorID
  
  
SMC_ERROR
  
  
0
  
  
错误指示,见SMC_Error。
  
  
CamTableID
  
  
MC_CAM_ID
  
  
要被功能块MC_CamID使用的CAM工作台标识号。
  
注意:

  • 一个虚拟轴可被用作主轴。
  • 当输出Done为TRUE时,CamTableID 有效且可以在MC_CamIn中使用。
MC_CAMIN (FB)
                                                                                                                                                                                                                       
  
类型
  
  
初始值
  
  
描述
  
  
VAR_IN_OUT
  
  
Master
  
  
AXIS_REF
  
  
关于主轴,见AXIS_REF_SM3。
  
  
Slave
  
  
AXIS_REF
  
  
关于从轴,见AXIS_REF_SM3。
  
  
VAR_INPUT
  
  
Execute
  
  
BOOL
  
  
FALSE
  
  
输入值的上升沿将启动该函数块的执行。
  
  
MasterOffset
  
  
LREAL
  
  
0
  
  
主轴工作台偏移。
  
  
SlaveOffset
  
  
LREAL
  
  
0
  
  
从轴工作台偏移。
  
  
MasterScaling
  
  
LREAL
  
  
1
  
  
主设备分布缩放因数。
  
  
SlaveScaling
  
  
LREAL
  
  
1
  
  
从设备分布缩放因数。
  
  
StartMode
  
  
MC_StartMode
  
  
absolute
  
  
绝对、相对或ramp_in(于当前位置)。
  
  
CamTableID
  
  
MC_CAM_ID
  
  
所用的CAM工作台的标识符,MC_CamID的输出。
  
  
VelocityDiff
  
  
LREAL
  
  
0
  
  
对于ramp_in速度差的最大值。
  
  
Acceleration
  
  
LREAL
  
  
0
  
  
ramp_in的加速度。
  
  
Deceleration
  
  
LREAL
  
  
0
  
  
ramp_in的减加速度。
  
  
TappetHysteresis
  
  
LREAL
  
  
0
  
  
挺杆迟滞大小。
  
  
VAR_OUTPUT
  
  
InSync
  
  
BOOL
  
  
FALSE
  
  
如果从设备根据CAM工作台同步于主设备则值为TRUE。
  
  
Busy
  
  
BOOL
  
  
FALSE
  
  
当功能块执行还没结束时为TRUE。
  
  
CommandAborted
  
  
BOOL
  
  
FALSE
  
  
如果该命令已被其他命令终止则为TRUE。
  
  
Error
  
  
BOOL
  
  
FALSE
  
  
在功能块内部发生错误的信号。
  
  
ErrorID
  
  
SMC_ERROR
  
  
0
  
  
错误指示,见SMC_Error。
注意:
  
  
EndOfProfile
  
  
BOOL
  
  
FALSE
  
  
脉冲输出指示了CAM分布的周期结束。
  
  
Tappets
  
  
SMC_TappetData
  
  
要被SMC_GetTappetValue评估的挺杆信号。


  • 主设备不一定是固定的。
  • 如果在执行MC_CamIn 时实际的主设备和从设备的位置并不符合于偏移值,则要么发生一个错误,要么系统自动处理出现的偏差。
  • StartMode: CAM要么“绝对”地要么“相对”地被定位于主-从设备的位置。“ramp-in”是供货商定义的值。它可以与附加参数结合起来,比如主设备距离参数、加速度参数或者其他供货商确定的参数,而从设备ramp-in 到凸轮分布中(“飞行结合”)。
  • 从设备偏置的机械模拟是一个以附加固定层厚度焊接的凸轮。因此,从设备位置总有固定偏移,这个偏移假设为线性引导从设备挺杆,可被解释为主设备轴的轴线偏移。
MC_CAMOUT (FB)
                                                                                         
  
类型
  
  
初始值
  
  
描述
  
  
VAR_IN_OUT
  
  
Slave
  
  
AXIS_REF
  
  
关于从轴,见AXIS_REF_SM3
  
  
VAR_INPUT
  
  
Execute
  
  
BOOL
  
  
FALSE
  
  
输入值的上升沿将启动该功能块的执行。
  
  
VAR_OUTPUT
  
  
Done
  
  
BOOL
  
  
FALSE
  
  
如果凸轮被放开为TRUE。
  
  
Busy
  
  
BOOL
  
  
FALSE
  
  
当功能块执行还没结束时为TRUE。
  
  
Error
  
  
BOOL
  
  
FALSE
  
  
在功能块内部发生错误的信号。
  
  
ErrorID
  
  
SMC_ERROR
  
  
0
  
  
错误指示,见SMC_Error。
  
注意:

  • 假设该命令被后面还有别的对于MC_Stop, MC_GearIn 实例的命令。如果没有其他命令跟随,则默认条件应该是:保持前一个速度。
电子凸轮相比于机械凸轮有很大的灵活性和自由性。我们可以通过改变相应点的位置就实现了对凸轮轨迹的改变,就不需要像以前那样更改机械装置。而且电子凸轮使用起来方便有很大的优越性,可以完全替代机械凸轮,只是相对成本比较高。
     对于其用法和程序建立当然也会比较复杂些,特别对于凸轮表的建立,直接关系到凸轮构建的成功与否,另外就是要对加工工艺非常熟悉。


回复

使用道具 举报

ID:135532 发表于 2020-6-12 16:25 | 显示全部楼层
师傅,这个电子凸轮有公式吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表