[三菱] FX3U PLC通过手摇轮,如何手动控制步进电机(附源程序)

[复制链接]
查看127 | 回复0 | 2024-4-4 22:49:27 | 显示全部楼层 |阅读模式
动作描述
系统的框架如下图:



一台3U的plc,控制了3台步进电机,分别控制了X、Y、Z这3个轴,PLC接了一个手摇轮,可以手动控制这3个轴,手摇轮的第一个旋钮可以选择控制不同的轴,第二个悬念可以选择速度的倍率,然后通过转盘控制电机正反运转。


硬件设备
1.三菱PLC :FX3U-16MT-ES-A
2.42步进电机套装:3台
3.数控机床电子手轮
三、软件:
所需软件版本:GX Works2(1.576A版本)
四、I/O分配:
输入点
注释
输出点
注释
X0
手轮A相
Y0
X轴电机脉冲
X1
手轮B相
Y1
Y轴电机脉冲
X2
X轴档位
Y2
Z轴电机脉冲
X3
Y轴档位
Y3
X轴电机方向
X4
Z轴档位
Y4
Y轴电机方向
X5
1倍档
Y5
Z轴电机方向
X6 
10倍档
Y6

X7
100倍档
Y7



五、程序编写及思路:
(1)根据3U高速计数器的表格,可以找到X0和X1对应的高速计数器对应的高速计数器是C251。



我们只需要把手轮上转盘的两个信号点,接入X0和X1就可以,用以下的程序就能纪录手轮发出的脉冲信号个数





(2)通过M8012的上升沿信号用DMOV指令把脉冲数读取到D0里面,每隔100ms读取1次,1倍档时我们乘以10倍放到D2寄存器里面,就是相当于算出了1秒里面能够发送的脉冲数,1s发送的脉冲数就是的频率,后面控制的程序就用这个D2的数据去控制,10倍档就控制乘以100,100倍档就乘以1000,最后面清空下这个高速计数器。这样每隔100ms就刷新一般数据(这里我的手轮一圈的脉冲数和步进电机转一圈需要的脉冲数是一致的,假如不同,那你需要根他们的比值去做一个乘法或者除法的运算),另外,3U的plc没有手轮控制的功能,我们程序没办法做到绝对的同步,动作存在误差。




(3)由于硬件的限制,频率一超过10000HZ时步进电机就控制不了(不同的电机硬件这个频率可能不一样,不一定是10000),所以这个参数需要根据你实际的数据去测试这个数据多大是极限,防止我们手轮摇的过快),所以下面做了限制



(4)最后面,使用可变速脉冲输出指令控制,不同的轴的X点对应不同的Y点进行输出,频率采用前面计算出来的D2进行控制。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则