如下图所示前面一个称重装置,后面的输送带匀速运行,包装的重量不一样分别驱动气缸推到不同的盒子里面。求编程的思路,用什么指令,称重可以先不管,电眼(接近开关)可以自由添加。
小于等于100g,放第一盒子,大于100小于等于200放第二盒子,大于200小于等于300放第三盒子,大于300自由落到第四个盒子。编程思路如下:
...............................................................................................................................................................................................................
■----O----O----A(3)----O----O----B(6)----O----O----C(9)----O----O----▲
...............................................................................................................................................................................................................
第一步:如上所示共12格,代表放12只盒子,传送带每秒右移一格,一个循环12秒移完。第0格称重,称重台检测到盒子让c0自加1记录盒子数量,每只称重重量与A B C处标准比较,符合C标准,让计数器c1= 9(假如第二只符合B标准,C2=6,第三只符合A标准 c3=3)。 次处用指针变量lw0的自增作为计数器的下标: L 1 / L lw0/+i /T lw0 / .... L c#6 (3,6,9根据称重结果).......S c[lw0].....(这样就可以得到诸如c1=9,c2=6,c3=3的结果)。
第二步:上边图像,黑方块代表称重台,想办法让盒子从称重台上到皮带第一格的时刻比盒子从别处上到称重台的时刻稍晚一点,即是,盒子从称重台算起移动一格到位时,已经又加上了一个盒子到称重台,此时c0=2(此时移动了一格);.............第一次假设前三只盒子的应到位置是3,6,9位置....当盒子移动到第3格A处时,c0=4; (当移动到B处时c0=7... ...); 看出来了吗,当到A处时,c0=4,用此时c0的值减去本地格数3,即4-3=1,表示第一只经过盒子......推出去了后此时第二只盒子经过B时c0=8(A处推出后的空位先过);8-6=2即是第二只盒子,B处是第二只盒子的假设位置,推出...... 到C处时,c0=12(c处过2个空位),12-9=3,正好是第三只盒子。
第三: 假如第1,2,3, 4,5,6盒子位置分别是A,B,C,C, A, A... 第一只到达A推出,第二只到达B推出,此时c0=8, 注意此时B左边数起的第3只(B处推出的是第二只,即第5只已经在A位置且符合推出条件),A处此时c0=8, 8-3=5表明是第5只。下一步,c0=9时,第6只盒子到A处,9-3=6表示到A处的此时是第6只盒子。 (此时只剩第3,第4只盒子了,正是图中当第二只在B处c0=8时的前面两只),此时,第3,4只右边只有第2只推出后的一个空位,第3只到达C处时c0=12,第4只到达C处c0=13; 12-9=3;13-9=4,正好是第3只和第4只。
第四:通过以上推论看出,每只盒子经过A,B,C时,用此时c0的值减去本处的固定值,即是第几只盒子经过本处。
第五: 注意计数器计数最大值,清零。
这是网上一位朋友的求助帖,以上是我的解题思路,没验证不知道对不对。有朋友认为可以用移位指令,我觉得不可行。如果您有其他方法,希望帖上来,稍微具体一点为好。(以上所诉只是理论上的阐述,可能实际控制过程人家是另外的办法,这种生产线肯定早都有了,只是我不知道别人是如何编程的。)