APP下载

农产品精确称重分拣机控制及模拟仿真调试

2022-06-24山东省平邑县农机发展促进中心王雷

河北农机 2022年6期
关键词:子程序数组队列

山东省平邑县农机发展促进中心 王雷

随着人们生活水平的提高,对农产品比如水果、海产品、某些品种的蔬菜等的规格重量统一性的要求也提高了,产生了对农产品按重量规格分类分级的需求。本文研究设计了一种按重量分级分拣的自动化装置,大大提高了工作效率和分类准确性。

1 整个装置的机械结构及工作原理

这个装置采用小型皮带机作为传送和称量的载体,左侧为从动轮安装了编码器,右侧为主动轮由电机减速机驱动,皮带横向两侧安装挡料板防止被测产品掉落。从动轮为进料端,产品间隔一定距离挨个进入进料端,距离从动轮一定距离的皮带底部安装有称重传感器,离开一定距离是为了排除进料时产品的冲击给称重带来的影响。称重传感器之后的一定距离,在皮带一侧或两侧的挡料板上间隔一定距离开设若干分拣口,每个分拣口都可以提前设定好接受产品的重量区间,进入这个重量区间的产品会被相应分拣装置接收。分拣口数量决定了产品分级的数量,分级数量等于分拣口数量加一,因为产品可以不经任何分拣口从输送带尾端排出。在每个分拣口处安装一个分拣拨板,分拣拨板由气缸控制可以旋转一定角度,气缸的进气管设有调压阀和节流阀,以调节分拣拨板打开关闭的力度和速度,在避免碰伤产品的同时保持一定的动作速度。分拣拨板打开时就会挡住并接受传送带上的产品,关闭时就会直接将产品送入分拣口的落料收集斗,并且关闭分拣口,与挡料板平齐避免阻挡产品的通过。当产品依次通过传感器时,传感器就会捕捉到产品重量信号和它的整个变化过程,送入PLC 现场控制器,PLC 通过记录、计算产品重量和位置信息,确定每个产品该送入哪个分拣口,当产品运行到相应分拣口前,分拣拨板会提前打开接受产品,产品进入相应分拣口位置后关闭分拣口收回分拣拨板。由于每个产品都经过精确测量称重,每个分拣口都按设定和测量的产品重量区间接受产品,因而快速实现了按重量对产品的准确分级。

我们采用了西门子型号为s7-224xp 的PLC 作为主控制器,它自带两路模数转换通道,方便接入称重信号。为了方便装置的调试,我们在分级分拣控制程序中加入了自动模拟称重信号的随机重量子程序,这部分程序模拟了货物进入装置称量模拟量信号变化的过程,从而不用接入任何实际设备和传感器只用PLC 就可实现仿真模拟调试。

图1 皮带分拣装置示意图

2 控制程序的整体思路是

(1)利用中断程序模拟货物投放后逐渐接近然后远离称重传感器造成称量信号变化的过程。本例利用一个时间中断(模拟重量中断)近似按照正弦函数的规律模拟称重信号的变化。

实际称量过程中货物被投放到称量皮带投料口处,经过皮带的传送逐渐接近并到达称重传感器的正上方再远离传感器。我们近似认为传感器接收到的是一个上升段加一个下降段组成的正弦波,函数最小值为0,最大值为货物重量值,通过正弦波模拟一件货物通过传感器的过程。

图2 控制流程示意图

(2)再利用另一个时间中断(采样中断子程序)不断提取上面那个模拟重量信号的寄存器值,并记录采样过程的最大值;同时在该中断中设置一模拟皮带编码器的寄存器,使其自加一个数值,这个位移寄存器就会不断增加以此模拟皮带的位移,记录货物位置值。当测量的重量值不断增大时,则不断更新存储该称重最大值及对应皮带移动位置值。当连续多个采样周期寄存器数值小于最大值时(进入衰减周期),则判定该最大值就是被测货物的重量,把该值按照需要的货物等级分类规则计算生成一个分类号,记录进类型循环队列,程序根据分类号确定将要触发哪一个分拣口的驱动机构的开启动作。程序将确定获取到最大称重值时对应的位置值记录进位置循环队列,根据分类号、位置值计算确定将要打开对应分拣口的开启时间。当衰减周期大于一定数值后,测量的重量值又重新增大时则清零最大值,其代表一件货物的称重测量已结束,开启下一货物的测量。

(3)上述两个循环队列具有相同的长度,相当于两个数组,同一位置的数组元素代表同一个货物的两个属性,一个记录货物的类型,一个记录货物的位置。数组的长度决定了可以处理的同时存在于皮带上的货物的最大量。在s7200 中可以利用指针来寻址读写的方式循环地利用该数组空间。它们的起始地址不同,但相同数组编号的数据是对应同一目标货物。

数据地址=数组起始地址+偏移地址

偏移地址=数组编号×单位数据长度

每次检测到一个新的货物两组数组编号同时增加,将数据记录到下一个数组单元,当记录到数组最后一个单元时,则将数组编号置零,将新数据从数组起始位置写入,覆盖原数据这样循环往复。根据实际应用中皮带容纳存放货物的多少并预留一定的富余量,来设置队列数组的长度。队列数组的长度太短会造成被分捡的货物信息被循环覆盖掉造成遗漏分拣,队列数组的长度过长会造成下述队列扫描时,占用PLC 的循环扫描时间,理论上如果占用过多的PLC 的循环扫描时间就会造成PLC 无法正常运行,从实际运行结果来看这种方法运算负担不大。

(4)还是在第二个时间中断中(采样中断子程序),遍历一次两个队列数组,两个数组一个存放货物类型,一个存放其被检测到时货物的位置。有多少类型就有多少货物出口,最后一种货物不需要分捡,直接从皮带排出即可。

分捡口数=货物类型数-1

在遍历过程中,根据称重检测位置到每个分拣口的距离,设定每种类型的货物分捡驱动装置打开和关闭时,货物从检测位置开始到对应分拣口移动的相对位移,当机器设计完成后这个距离是固定的,我们在模拟调试时这个距离和对应位移值(编码器位移的差值)是可以随意调整的。当货物快要到达相应分拣口时,其相对位移达到分拣驱动装置打开的设定值,货物到达之前,相应分拣装置打开,当货物到达后被分拣装置捕获,相对位移达到分拣驱动装置关闭的设定值时,相应分拣装置关闭,货物进入相应分拣口,在程序中将相应货物标记为空。每次执行该中断程序时都对固定长度的货物数组进行遍历,逐一判断是否达到相应分拣口而执行相应分拣动作,虽然货物标记为空后,有用的货物数据在数组中零散分布,但也不用对货物数组进行排序,以节省扫描时间,因为排序消耗的时间可能会更长。经过s7-224xp 实测20 个货物数组长度的程序扫描周期也只有4 毫秒还有相当的时间富裕,完全满足实际需要。

相对位移=位移寄存器当前位置-位置队列中的位置

根据以上过程可知,该分选装置程序模拟实现了自动称重测量检测,并按照设定的分级标准,将货物送入相应的分拣口,实现自动分捡。程序通过s7-224xp实际调试运行通过,其中部分变量监测趋势如图3 所示。

图3 部分变量监测趋势图

3 程序架构

3.1 主程序

(1)调用初始化子程序

(2)称量皮带起保停

(3)皮带启动时初始化并启动所有时间中断,皮带停机时关闭所有时间中断

(4)周期性模拟投放货物,调用随机重量子程序。

(5)设定各分拣驱动的最大开启时间

3.2 初始化子程序

(1)两个时间中断初始化

(2)设置类型队列、位置队列起始位置

(3)设置当前位置序号、当前位置、循环次数等初始值

3.3 随机重量子程序

(1)由正弦函数生成一个0~2 之间的重量数。

(2)再将重量数变为0~40 之间的数,初始化正弦函数起始角度-π/2(-90 度)约为1.57 弧度。

3.4 模拟重量中断程序

此时间中断函数每59 毫秒执行一次,按照正弦函数自变量从 -π/2~3π/2(-1.57~4.71 弧度)每次加0.07弧度,模拟货物经过传感器产生的测量值,此模拟函数的目的不在于精确模拟实际测量值,而在于模拟货物投放的过程以便于检验和调试称量检测和分拣驱动触发程序。

3.5 采样中断子程序

(1)扫描模拟重量寄存器,记录重量最大值,监测到重量衰减次数大于2 时,将货物重量最大值的类型及位置写入队列。当队列指针超出队列范围时,将指针指向队列开始位置;

(2)将货物重量最大值的类型及位置写入队列

(3)指针偏移,模拟位移编码递增。

(4)检索货物队列的循环,共设有20 个寄存器的队列成员,可以根据实际需要调整大小。

①计算当前货物类型。

②计算每个货物的当前位置和相对位置,并根据类型和相对位置来确定各分拣驱动的打开和关闭。

③计算每个货物队列指针偏移量,检索方向与加入队列的方向相反,为递减检索。当偏移量为零时,将指针指向队列末尾。

综上所述,该分选机通过采用PLC 现场控制器加传感器、执行器与皮带机的这种机电一体化的方式,实现了自动按设定重量区间精确分级分拣的主要功能,并且该机采用流水线工作方式,一边进料一边分拣不停机工作,工作效率高,结构简单紧凑易于维护。由于结构简单、紧凑成本低,还便于多台机器并联,联合运行实现更大规模的生产,值得推广应用。下一步还需要进一步研究适应各种产品的进料端给料装置,以实现全面自动化。

猜你喜欢

子程序数组队列
JAVA稀疏矩阵算法
队列队形体育教案
JAVA玩转数学之二维数组排序
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
更高效用好 Excel的数组公式
浅谈子程序在数控车编程中的应用
寻找勾股数组的历程
子程序在数控车加工槽中的应用探索