1.main函数
1.系统初始化
本项目作者: 汇川技术 初始化
D0 = 0 初始正常状态-按下停止按钮
D0 = 1 急停停机状态
D0 = 2 断料停机状态
D0 = 3 伺服故障停机状态
D0 = 8 系统正常运行状态-按下启动按钮
这里D0在程序中代表着设备的运行状态,当按下急停按钮后,系统进入急停状态,D0 = 1,当按下运行按钮,当设备在D0 = 0初始状态时,可以让设备启动进入D0 = 8运行状态,当在运行状态检测到系统断料,则会将D0设置为2,进入断料停机状态.当伺服故障的时候,则将D0 设置为3,伺服进入故障停机状态.
2.IO口监控
3.使能与断使能
这里使能和断使能还有很多轴没有截图截出来,比较长,就不截图了.
4.系统停止运行部分的逻辑
这里有根据贴合模式还是裁切模式,进行了分类设置停止逻辑.同时因为工艺要求,还写了整本停机部分的逻辑代码.
5.启动按钮按下逻辑
第一句在D0 = 0系统正常初始状态下,启动按钮按钮按下设置系统为运行状态系统开始运行.下面那两句是设置启动延时的,因为启动的前一段时间,系统运行还不稳定,比如反馈转速还没有稳定到合适的值,此时计算的卷径是不准确的,跳变很大,然后间接算出来的转矩也是不准确的.所以这里考虑当系统运行2s之后,再开始计算卷径,同时再进行断料监测.
6.急停复位
急停按钮弹起,进行急停复位.不用手动点击复位按钮复位急停故障.
7.急停部分逻辑
急停按钮按下,直接设置D0 = 1,今日紧急停机状态,如果安全门打开,也要进入急停状态保证操作人员安全.
8.子程序的调用
根据各个轴的使能情况,再确定各个轴子程序是否调用.
9.转矩轴速度限制
当系统急停或者断料或者伺服故障的时候,转矩轴的速度需要限制为0.其他情况转矩速度上下限都设置为1000转.这里就不粘贴出来了.
10.断料检测
断料检测,设置D0 = 2,进入断料状态.停机
2.系统参数初始化
1.上电系统常量初始化
1.π圆周率
2.电机与负载使用的是1:2.5皮带轮
3.机械参数-牵引轴直径64mm
4.其他用到的常量
2.系统用到一系列变量初始化
3.HMI界面显示参数初始化
为0的时候,才会设置成默认值
3.交互数据处理子程序
这部分主要是处理HMI中的数据与PLC中的数据的交互的.这个程序中又分了很多很多的网络,每个网络实现一个功能.这里网络很多,程序也很多,我只拿出来一部分程序,写在下面,具体请参考项目程序.
1. 裁切速度 贴合速度初始化
2.4DA模块使用
3.根据canlink反馈数据判断伺服是否故障
3.牵引轴程序
1.贴合模式下,连续运行状态
系统连续发脉冲,使用的指令是PLSV2,将HMI中设置的线速度根据机械参数转换成牵引伺服轴的转速,然后转换成需要发的脉冲数的大小.
2.裁切模式下,断续相对定位:
这里裁切模式下,实际上是考虑工艺了切断次数,倍送1和倍送2次数,所以加了几个计数器.
4.各个转矩轴子程序
1.匀速贴合模式下卷径计算
这里卷径计算是靠线速度相等来算的,这里反馈的转速是不稳定的,需要进行滤波处理,这里我使用的是一阶低通滤波器.进行反馈转速滤波.未经滤波的转速如下图所示:如果不进行滤波处理,计算出来的卷径变化在+-8mm变化,变化很大,不能用,这里进行滤波后,卷径变化在+-1mm左右,效果很好
2.裁切模式下卷径计算:
相对定位模式下 实时卷径计算:
1.L1 = L2 = S*α
2.α为转过的圈数 这里需要判断转了几圈
3.圈数计算方法如下:
1.走L1位移这段距离内 实时监控H0B-17中的脉冲数
2.这次脉冲数减去上次脉冲数,然后除以负载走一圈脉冲数得到α
3.张力转矩设置
这里需要根据电机的额定转矩,计算出相应的百分比通过canlink通信设置到伺服中.
这里仅介绍本项目中部分程序,具体请参考项目程序自行理解.
转载请注明:燕骏博客 » 贴合机裁切机项目总结之10:PLC程序逻辑总结
赞赏作者微信赞赏支付宝赞赏