




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一凸轮数据1.1 MC_CAM_REF 代表一个凸轮相关映射,”MC_CAM_REF”实际也是FB可以在程序中调用。名称类型初始值描述wCamStructIDWORD 16#DC34这个变量值通常是一个常量值,此功能用于检查输入的数据结构是否为 MC_CAM_REF类型的。byTypeBYTE0描述cam的类型,这是cam表示的方式,可以进行以下设置:0:1: 等距方式,从站位置的1维尺寸数据 2: 非等距方式, 相关主/从位置的2维表格尺寸 3: 特定点的多项表述,包含主轴位置,从轴位置,从轴速度以及从轴加速度 (XYVA)。byVarTypeBYTE只在 byType=1 或者 byType=2时有效定义当前表格中的数据类型:1: INT 2: UINT 3: DINT 4: UDINT 5: REAL 6: LREALxStartLREAL主轴启动位置,定义主轴变量的范围用。xEndLREAL主轴停止位置,定义主轴变量的范围用MC_CAM_REF 为凸轮应用中必须的数据结构,产生该结构数据有两种方法:1添加CAM时会自动生成并且编辑,编译后会自动生成数据内容。2通过变量表(全局,局部变量)可手动添加,可以在程序中设置该结构数据内容1.1.1在应用中添加cam自动生成MC_CAM_REF数据结构:图1-1添加凸轮凸轮添加后会自动生成如图1-2所示的数据图1-2生成的MC_CAM_REF数据结构设置好添加的CAM表属性后,双击添加的CAM表出现编辑画面可以编辑凸轮表,编辑完成后会对应的“MC_CAM_REF”内容会自动更新。1.1.2 在变量表中手动添加“MC_CAM_REF”:图1-3生成的MC_CAM_REF数据结构1.2 SMC_CAMXYVA 名称类型初始值描述dXLREAL 0主轴位置dYLREAL0从轴位置。dVLREAL0一次导数 dY/dX;从站速度dALREAL0二次导数 dY/dX;从轴加速度。SMC_CAMXYVA 为凸轮应用选择凸轮表方式为多项式(”MC_CAM_REF”数据“byType”为3)时必须的数据结构,产生该结构数据有两种方法:1添加CAM时会自动生成并且编辑,编译后会更新数据。2通过变量表(全局,局部变量)可手动添加,可以在程序中设置该结构数据内容1.2.1 应用中添加的Cam自动生成添加的CAM右键点击属性属性“Cam”中的编译形式选择“多项式(XYVA)”。设置好添加的CAM表属性后,双击添加的CAM表出现编辑画面可以编辑凸轮表,编辑完成并编译后会自动生成SMC_CAMXYVA数据。1.2.2 变量中手动添加下图:凸轮“MC_CAM_REF” 中“byType”设置为3,关键点数为6:1.3 SMC_CAMTable_1/2“MC_CAM_REF” 中“byType”设置为1时对应的需指定该结构数据。 一维数据表结构名称类型初始值描述TableARRAY 0.-1 OF数据类型从轴组的位置。起点和终点位置必须包含。“数据结构名”.Table.0. Table.N表示从轴位置fEditorMasterMinLREAL以表格形式存储的主轴值,并且按照SoftMotion单元的比例范围存储。fEditorMasterMaxLREALfEditorSlaveMinLREAL以表格形式存储的从轴值,并且按照SoftMotion单元的比例范围存储。fEditorSlaveMaxLREALfTableMasterMinLREAL以表格形式存储的主轴位置值并且缩放比例为表格单位的 fTableMasterMin, fTableMasterMax。fTableMasterMaxLREALfTableSlaveMinLREAL以表格形式存储的从轴位置值并且缩放比例为表格单位的 fTableSlaveMin, fTableSlaveMax 。fTableSlaveMaxLREAL“MC_CAM_REF” 中“byType”设置为2时对应的需指定该结构数据。二维数据表结构名称类型初始值描述TableARRAY 0.-1 OF ARRAY OF 数据类型主/从轴组的位置。起点和终点位置必须包含。索引 0 代表主轴,索引 1 代表从轴。“数据结构名”.Table.00表示主轴位置. Table. 01表示从轴位置fEditorMasterMinLREAL以表格形式存储的主轴值,并且按照SoftMotion单元的比例范围存储。fEditorMasterMaxLREALfEditorSlaveMinLREAL以表格形式存储的从轴值,并且按照SoftMotion单元的比例范围存储。fEditorSlaveMaxLREALfTableMasterMinLREAL以表格形式存储的主轴位置值并且缩放比例为表格单位的 fTableMasterMin, fTableMasterMaxfTableMasterMaxLREALfTableSlaveMinLREAL以表格形式存储的从轴位置值并且缩放比例为表格单位的 fTableSlaveMin, fTableSlaveMax 。fTableSlaveMaxLREALSMC_CAMTable 为凸轮表方式设置为一维,二维方式(”MC_CAM_REF”数据“byType”为1,2)必须的数据结构,产生该结构数据有两种方法:1添加CAM时会自动生成并且编辑,编译后会更新数据。2通过变量表(全局,局部变量)可手动添加,可以在程序中设置该结构数据内容1.3.1 应用中添加CAM自动生成添加的CAM右键点击属性属性“Cam”中的编译形式选择“一维点数组”,则会生成一维的数据结构。选择“二维点数组”, 则会生成二维的数据结构。设置好添加的CAM表属性后,双击添加的CAM表出现编辑画面可以编辑凸轮表,编辑完成并编译后会自动生成SMC_CAMTable数据。1.3.2 变量表中手动添加上图为添加系统自带的256点、长浮点数、一维跟二维的SMC_CAMTable数据。系统自带的还有128点的整形、长整形等等SMC_CAMTable数据。1.3.3 自定义凸轮表数据结构此外用户还可自定义:例如新建的DUT(自定义数据结构)命名为“DUT”结构为一千点、浮点型的二维主从轴位置对应凸轮表,则声明部分程序为:TYPE DUT :STRUCT Table: ARRAY0.999 OF ARRAY0.1 OF REAL; (* setting all scaling definitions to 0 and360 means that the values from the table are not scaled *) fEditorMasterMin: REAL := 0; fEditorMasterMax: REAL := 360; fEditorSlaveMin: REAL := 0; fEditorSlaveMax: REAL := 360; fTableMasterMin: REAL := 0; fTableMasterMax: REAL := 360; fTableSlaveMin: REAL := 0; fTableSlaveMax: REAL := 360;END_STRUCTEND_TYPE变量表中调用该结构1.4 SMC_CAMTappet代表一个凸轮挺杆相关映射。需要跟指令MC_Camin 以及SMC_GetTappetValue配合使用得到挺杆输出值(开关BOOL)名称类型初始值描述cttSMC_CAMTAPPETTYPETAPPET_pos0:”TAPPET_pos”当主轴相位按照正方向进行处理时挺杆动作激活1: “TAPPET_all”当主轴相位按照正反方向进行处理时挺杆动作激活2:”TAPPET_neg” 当主轴相位按照反方向进行处理时挺杆动作激活ctaSMC_CAMTAPPETACTIONTAPPETACTION_on0:” TAPPETACTION_on” 开关打开 1: “TAPPETACTION_off”开关关闭2:” TAPPETACTION _inv” 颠倒3: ” TAPPETACTION _time”确定时间周期内开关打开dwDelayDWORD0如果变量 cta = TAPPETACTION,这个变量定义延迟时间( s )iGroupIDINT0挺杆的组或者轨迹ID切换挺杆输出XLREAL0挺杆输出时主轴位置dwActiveDWORD16#FFFFFFFF内部变量SMC_CAMTappet 为使用凸轮挺杆时必须的数据结构,产生该结构数据有两种方法:1添加CAM时会自动生成并且编辑,编译后会更新数据。2通过变量表(全局,局部变量)可手动添加,可以在程序中设置该结构数据。1.4.1 添加凸轮表中编辑挺杆自动生成双击添加的CAM表出现编辑画面可以编辑挺杆数据,编辑完成并编译后会自动生成SMC_CAMTappet数据。1.4.2 手动添加VAR_GLOBALCAM_TAPPSFB: SMC_CAMTappet;END_VAR二 凸轮表创建从上述凸轮数据一章可以看出凸轮的数据可以手动建立与应用中添加凸轮表自动生成的方法。所以凸轮表的建立也有两种方法:1通过系统自带的凸轮工具自动生成,另外就是手动在程序中新建2.1 添加凸轮表添加凸轮表 然后修改凸轮属性双击进入编辑凸轮界面“添加点”增加关键点:“删除点”删除关键点:“删除点”未被选中状态:X列:主轴关键点位置值Y列:从轴关键点位置值V列:关键点速度值A列:关键点加速度值同时也可以通过拉伸关键点来调整曲线,数据会更随拉伸自动生成。2.2 添加凸轮表中关键节点修改新建CAM凸轮表系统会自动生成MC_Cam_REF类型的数据结构和SMC_CAMXYVA(选择多项式编译形式)或者 SMC_CAMTable(选择一维点数或者二维点数编译形式)结构类型的数组,要修改关键点就需要理解这些数据结构。MC_Cam_REF主要起定义作用包括(起点、结束点、凸轮表包含点数、挺杆点数、凸轮表类型、数据类型等),最终与MC_Camslecttable等指令配合使用的为它。SMC_CAMXYVA定义每个关键点的位置、速度等并合成一个数组。SMC_CAMTable为定义主从轴对应的位置并且合成数组。注意:新建CAM系统属性里面“编译形式”选择,默认的为“多项式”模式生成SMC_CAMXYVA类型数据,如果选为一维点或者二维点编译后会生成SMC_CAMTable类型数据。如将第2个关键点位置改为(200,200)并且速度为1加速度为0,生成的SMC_CAMXYVA数据结构名为Cam_A 如下图所示程序中可以下述程序更改关键点:CAM_A1.dX:=200;CAM_A1.dY:=200;CAM_A1.dV:=1;CAM_A1.dA:=0;如果添加的凸轮表属性中编译形式选择“二维数组”模式,可以选择128点或者256点类型这种方式为将添加的关键点自动分配到256个2维数组里面2.3 新建凸轮表数据 AM600支持用户自建凸轮应用 第一步:定义MC_Cam_REF类型的数据结构、定义SMC_CAMXYVA或者SMC_CAMTable,结构类型的数组第二步:给定义好的数据赋值。下面以详细的列子来说说明:2.3.1 二维数组凸轮表1:定义结构数据VAR_GLOBALCAM3: MC_CAM_REF;CAM_Table3: SMC_CAMTable_REAL_128_2;CAM_TAPPSFB: SMC_CAMTappet;/挺杆点一个K:REAL;END_VAR2:程序/二维凸轮表斜率为K,主轴周期为360的一条直线CAM_Table3.fEditorMasterMax:=360; CAM_Table3.fEditorMasterMin:=0; CAM_Table3.fEditorSlaveMax:= 360*K; CAM_Table3.fEditorSlaveMin:=0; CAM_Table3.fTableMasterMax:=360; CAM_Table3.fTableMasterMin:=0; CAM_Table3.fTableSlaveMax:= 360*K; CAM_Table3.fTableSlaveMin:=0;FOR i:=0 TO 127 DOCAM_Table3.Table i0:=(i / 127.0 * 360);/ mater 128 点CAM_Table3.Table i1:=K*(i / 127.0 * 360);/ Slave 128 点END_FOR/挺杆映射设置CAM_TAPPSFB.cta:=0; /”TAPPET_pos”CAM_TAPPSFB.ctt:=0;/ ” TAPPETACTION_on”CAM_TAPPSFB.iGroupID:=1;CAM_TAPPSFB.X:=100; /挺杆输出时主轴位置CAM_3 (wCamStructID:= , byType:= 2, /二维数组模式,具体参考MC_CAM_REF数据机构有说明byVarType:=5 , /real,数组数据类型,具体参考MC_CAMTable数据说明xStart:= 0, /主轴起点xEnd:= 360, /主轴终点nElements:= 128, / 数量,与定义的结构数据保持一致nTappets:=1 , /跟CAM_TAPPSFB数据对应为1个pce:= ADR(CAM_Table3), /凸轮表指向pt:= ADR( CAM_TAPPSFB),/顶杆数据指向dwTappetActiveBits:= , strCAMName:= , byInterpolationQuality:= , byCompatibilityMode:= , bChangedOnline:= , xPartofLM:= );注意上述参数需要设置正确,否则在后续程序中会造成MC_Camtableslect等指令报警自己定义的1000点的凸轮表:添加DUT自定义1000点结构体TYPE DUT :STRUCT Table: ARRAY0.999 OF ARRAY0.1 OF REAL; (* setting all scaling definitions to 0 and360 means that the values from the table are not scaled *) fEditorMasterMin: REAL := 0; fEditorMasterMax: REAL := 360; fEditorSlaveMin: REAL := 0; fEditorSlaveMax: REAL := 360; fTableMasterMin: REAL := 0; fTableMasterMax: REAL := 360; fTableSlaveMin: REAL := 0; fTableSlaveMax: REAL := 360;END_STRUCTEND_TYPE1:定义结构数据VAR_GLOBALCAM3: MC_CAM_REF;CAM_Table3: DUT;CAM_TAPPSFB: SMC_CAMTappet;/挺杆点一个END_VAR2:程序/二维凸轮表斜率为K,主轴周期为360的一条直线CAM_Table3.fEditorMasterMax:=360; CAM_Table3.fEditorMasterMin:=0; CAM_Table3.fEditorSlaveMax:= 360*K; CAM_Table3.fEditorSlaveMin:=0; CAM_Table3.fTableMasterMax:=360; CAM_Table3.fTableMasterMin:=0; CAM_Table3.fTableSlaveMax:= 360*K; CAM_Table3.fTableSlaveMin:=0;FOR i:=0 TO 999 DOCAM_Table3.Tablei0:=(i / 999.0 * 360);/ mater 1000 点CAM_Table3.Tablei1:=K*(i / 999.0 * 360);/ Slave1000 点END_FOR/挺杆映射设置CAM_TAPPSFB.cta:=0; /”TAPPET_pos”CAM_TAPPSFB.ctt:=0;/ ” TAPPETACTION_on”CAM_TAPPSFB.iGroupID:=1;CAM_TAPPSFB.X:=100; /挺杆输出时主轴位置CAM_3 (wCamStructID:= , byType:= 2, /二维数组模式,具体参考MC_CAM_REF数据机构有说明byVarType:=5 , /real,数组数据类型,具体参考MC_CAMTable数据说明xStart:= 0, /主轴起点xEnd:= 360, /主轴终点nElements:= 1000, / 数量,与定义的结构数据保持一致nTappets:=1 , /跟CAM_TAPPSFB数据对应为1个pce:= ADR(CAM_Table3), /凸轮表指向pt:= ADR( CAM_TAPPSFB),/顶杆数据指向dwTappetActiveBits:= , strCAMName:= , byInterpolationQuality:= , byCompatibilityMode:= , bChangedOnline:= , xPartofLM:= );2.3.2 一维数组凸轮表添加DUT自定义1000点结构体TYPE DUT :STRUCT Table: ARRAY0.999 OF REAL; (* setting all scaling definitions to 0 and360 means that the values from the table are not scaled *) fEditorMasterMin: REAL := 0; fEditorMasterMax: REAL := 360; fEditorSlaveMin: REAL := 0; fEditorSlaveMax: REAL := 360; fTableMasterMin: REAL := 0; fTableMasterMax: REAL := 360; fTableSlaveMin: REAL := 0; fTableSlaveMax: REAL := 360;END_STRUCTEND_TYPE1:定义结构数据VAR_GLOBALCAM3: MC_CAM_REF;CAM_Table3: DUT;CAM_TAPPSFB: SMC_CAMTappet;/挺杆点一个K:REAL;END_VAR2:程序/一维凸轮表斜率为K,主轴周期为360的一条直线CAM_Table3.fEditorMasterMax:=360; CAM_Table3.fEditorMasterMin:=0; CAM_Table3.fEditorSlaveMax:= 360*K; CAM_Table3.fEditorSlaveMin:=0; CAM_Table3.fTableMasterMax:=360; CAM_Table3.fTableMasterMin:=0; CAM_Table3.fTableSlaveMax:= 360*K; CAM_Table3.fTableSlaveMin:=0;FOR i:=0 TO 999 DOCAM_Table3.Tablei:=K*(i / 999.0 * 360);/ Slave1000 点END_FOR/挺杆映射设置CAM_TAPPSFB.cta:=0; /”TAPPET_pos”CAM_TAPPSFB.ctt:=0;/ ” TAPPETACTION_on”CAM_TAPPSFB.iGroupID:=1;CAM_TAPPSFB.X:=100; /挺杆输出时主轴位置CAM_3 (wCamStructID:= , byType:= 1, /一维数组模式,具体参考MC_CAM_REF数据机构有说明byVarType:=5 , /real,数组数据类型,具体参考MC_CAMTable数据说明xStart:= 0, /主轴起点xEnd:= 360, /主轴终点nElements:= 1000, / 数量,与定义的结构数据保持一致nTappets:=1 , /跟CAM_TAPPSFB数据对应为1个pce:= ADR(CAM_Table3), /凸轮表指向pt:= ADR( CAM_TAPPSFB),/顶杆数据指向dwTappetActiveBits:= , strCAMName:= , byInterpolationQuality:= , byCompatibilityMode:= , bChangedOnline:= , xPartofLM:= );2.3.3 多项式凸轮表定义100点的结构体TYPE DUT :STRUCT CAM_A: ARRAY0.99 OF SMC_CAMXYVA; END_STRUCTEND_TYPE1:定义结构数据VAR_GLOBALCAM3: MC_CAM_REF;CAM_Table3: DUT;CAM_TAPPSFB: SMC_CAMTappet;/挺杆点一个K:REAL;END_VAR2:程序/凸轮表斜率为K,主轴周期为360的一条直线FOR i:=0 TO 99 DOCAM_Table3. CAM_A i.dX:=(i / 99.0 * 360);/ 主轴位置100 点CAM_Table3. CAM_A i.dY:= K *(i / 99.0 * 360);/从轴位置100 点CAM_Table3. CAM_A i.dV:= K;/ 从轴速度 100 点CAM_Table3. CAM_A i.dA:= 0;/ 从轴加速度100 点END_FOR/挺杆映射设置CAM_TAPPSFB.cta:=0; /”TAPPET_pos”CAM_TAPPSFB.ctt:=0;/ ” TAPPETACTION_on”CAM_TAPPSFB.iGroupID:=1;CAM_TAPPSFB.X:=100; /挺杆输出时主轴位置CAM_3 (wCamStructID:= , byType:= 3, /多项式模式,具体参考MC_CAM_REF数据机构有说明byVarType:= , xStart:= 0, /主轴起点xEnd:= 360, /主轴终点nElements:= 100, / 数量,与定义的结构数据保持一致nTappets:=1 , /跟CAM_TAPPSFB数据对应为1个pce:= ADR(CAM_Table3), /凸轮表指向pt:= ADR( CAM_TAPPSFB),/顶杆数据指向dwTappetActiveBits:= , strCAMName:= , byInterpolationQuality:= , byCompatibilityMode:= , bChangedOnline:= , xPartofLM:= );2.3.4 一个凸轮表应用实例定义100点的结构体TYPE DUT :STRUCT CAM_A: ARRAY0.99 OF SMC_CAMXYVA; END_STRUCTEND_TYPE1:定义结构数据VAR_GLOBALCAM3: MC_CAM_REF;CAM_Table3: DUT;CAM_TAPPSFB: SMC_CAMTappet;/挺杆点一个K:REAL;phase_on:BOOL;cam_out:BOOL;END_VAR2:程序/凸轮表斜率为K,主轴周期为360的一条直线FOR i:=0 TO 99 DOCAM_Table3. CAM_A i.dX:=(i / 99.0 * 360);/ mater 100 点CAM_Table3. CAM_A i.dY:= K *(i / 99.0 * 360);/ mater 100 点CAM_Table3. CAM_A i.dV:= K;/ mater 100 点CAM_Table3. CAM_A i.dA:= 0;/ mater 100 点END_FORCAM3(wCamStructID:= , byType:= 3, /二维数组模式,具体参考MC_CAM_REF数据机构有说明byVarType:= , xStart:= 0, /主轴起点xEnd:= 360, /主轴终点nElements:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论