1/9
三菱FX5U轴脉冲控制功能块(二)
上一篇咱们聊了定位参数的设置,搞定之后,接下来就该写程序了。我打算先实现四个基础功能:轴回原、点动、绝对定位和相对定位。其他功能嘛,等以后项目有需求了再慢慢加。
翻了翻手册,我发现可以用DDSZR、DPLSV、DDRVA、DDRVI这四个指令来实现这些功能。简单来说:
1. **DDSZR**:机械原点回归。需要设置原点回归速度(s1)、爬行速度(s2)、轴编号(d1)和完成信号(d2)。触发后,轴会按照设定的速度和方向移动,寻找零点信号(通常是模组上的一个传感器,类似正负限位信号)。找到后停止,并把当前位置设为零点,后续绝对定位就以这个位置为基准。
2. **DPLSV**:可变速度运行。设置指令速度(s1)、轴编号(d1)和完成信号(d2)。触发后,轴会按照设定的速度输出脉冲,正转就设正数,反转就设负数,轻松实现正反转点动。
3. **DDRVA**:绝对定位。设置定位地址(s1)、指令速度(s2)、轴编号(d1)和完成信号(d2)。定位距离以原点为基准,直接定位到目标位置。
4. **DDRVI**:相对定位。设置定位地址(s1)、指令速度(s2)、轴编号(d1)和完成信号(d2)。定位距离以当前位置为基准,适合需要相对移动的场景。
为了方便以后复用,我打算围绕这四个指令建一个FB块。首先新建了两个结构体:**ST_AXIS**和**ST_AxisPos**。前者用来存放轴的状态和回原、点动等指令,后者用来存放定位数据和指令。这个写法是我从上家公司学来的,用起来特别顺手,所以决定沿用。
建好结构体后,就可以开始编写FB块了。块里包含了轴使能、回原、点动、绝对定位、相对定位、报警处理和初始化处理等内容。写完程序后,实例化调用并配置好引脚,就可以控制伺服了。具体内容大家可以看图片。
后面我会在项目里对这个功能块进行测试和更新。这个块是用ST语言写的,如果有需要的小伙伴可以联系我,我会把程序发给你。有问题也欢迎在评论区留言讨论,咱们一起交流学习~
03‑27

暂无评论内容

来发布第一条评论吧

发表神评妙论

0