作者 | 主题 |
---|---|
ChangeWang 游侠 经验值: 458 发帖数: 50 精华帖: 3 |
楼主 2019-04-23 10:30:33
主题:用于200Smart控制V90PN的仿博途轴工艺对象MC指令 200smart近期又火起来了,因为v2.4支持Profinet,能走Epos控制V90PN。编程软件里提供的Sian_Pos块其实是仅作为“驱动程序”,实现与V90驱动器的数据交互,具体实现各个运动功能,还需对Sina_Pos块里的各参数进行配置。为了方便使用,本人参照博途轴工艺对象里Motion Control指令,做了几个简单的功能块,以实现对伺服进行初始化、操作错误上报、运动参数设置、相对定位、绝对定位、寻找参考点、点动、增量点动。控制多台伺服直接对这些功能块进行多次调用即可。 前期对200smart与v90PN的配置工作在此不赘述了,可以参考“刚刚入门”兄的精华帖“一步一步实战200smart与V90PN的定位控制”——http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1548104&b_id=64&b_sid=0&s_id=0&num=20#anch 下面进入示例程序。在此假设控制一台伺服“轴1”。编程之前首先进行数据规划,将需要用到的变量建出来。把变量放在多个符号表里,便于查找和管理。在此创建三个符号表:dbSinaPosAxis1,用于轴1的Sina_Pos块;dbCtrlAixs1,用于轴1的控制命令;dbSystem,用于全程序使用。 注:对于变量规划命名有两点小建议: 1、多个对象的相同操作,假设同对对象1、对象2、对象3进行开启,则在建立对象1的变量时,命名为“start_对象1”,这样对象2、对象3直接复制粘贴对象1,把最后的数字改一下就行。 2、长度为一个字的变量,地址用2的整数倍;长度为一个双字的变量,地址用4的整数倍。防止地址重叠。 dbSinaPosAxis1 dbCtrlAxis1 dbSystem 下面是Main程序总览 时间有限,暂时发这么多,望大家理解。后续我会对每个功能块进行详细介绍。 |
ChangeWang 游侠 经验值: 458 发帖数: 50 精华帖: 3 |
2楼 2019-04-23 13:52:42
主题:回复:用于200Smart控制V90PN的仿博图轴工艺对象MC指令 在介绍运动控制功能块之前,先介绍一个小子程序TimeBase。它用来给整个程序提供一个100ms的定时时基,可避免在程序中,尤其是子程序中大量使用定时器。虽然这种方式计时不是太精确,但可满足大部分应用场合。 TimeBase 这段程序可每隔100ms产生一个上升沿脉冲。如想实现计时功能,可建立一Int(长度为1个word)型变量wTon,使用“TB_100ms”去执行wTon的INC(自加1)操作,则wTon=1便是计时了100ms,wTon=10便是计时了1s。 |
ChangeWang 游侠 经验值: 458 发帖数: 50 精华帖: 3 |
4楼 2019-04-23 14:40:41
主题:回复:用于200Smart控制V90PN的仿博图轴工艺对象MC指令 下面是各功能块程序,注释比较详细,请大家查阅,并希望大家提出宝贵意见。 1、MC_MoveRelative 功能块接口变量 功能块程序 2、MC_MoveAbsolute 功能块接口变量 功能块程序 3、MC_ToRef 功能块接口变量 功能块程序 4、MC_MoveJog 功能块接口变量 功能块程序 5、MC_MoveIncJog 功能块接口变量 功能块程序 6、MC_Initialize 注:200smart的Sina_Pos块有个特性,就是操作模式为0时,会报错“3,不支持的操作模式”,且无法使能,所以初始化时先任意给其赋值一个操作模式。因刚上电一般都需寻找参考点,所以这里把操作模式设置成“4”。 功能块接口变量 功能块程序 7、MC_MotionParam 注:这里是对伺服的速度、加减速百分比、相对定位、绝对定位的速度、位置进行设置 功能块接口变量 功能块程序 8、MC_OprateError 注:这个块反馈的是“操作错误”,因系统性错误,如伺服故障、到达硬限位等在驱动器的报警代码里都会体现,所以这里反馈的是“未使能便触发动作命令”、“速度、位置设定值超出允许范围”等操作性错误。 功能块接口变量 功能块程序 这些子程序封装成库,后期就能随时调用了。 |