wcb516358
级别: 略有小成
精华主题: 0
发帖数量: 55 个
工控威望: 217 点
下载积分: 1487 分
在线时间: 51(小时)
注册时间: 2015-10-22
最后登录: 2024-10-30
查看wcb516358的 主题 / 回贴
楼主  发表于: 2020-07-20 17:53
假如:我输入1个数值 25,我需要从已知的1、2、2、5、10、20数组,自动找出5和20进行相加,请问这PLC程序如何编写
[ 此帖被wcb516358在2020-07-20 18:15重新编辑 ]
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2845 个
工控威望: 3617 点
下载积分: 3517 分
在线时间: 3801(小时)
注册时间: 2007-11-04
最后登录: 2024-11-17
查看tingfenghu的 主题 / 回贴
1楼  发表于: 2020-07-20 18:52
用for来循环计算。
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/
guangyu85
工程师
级别: 家园常客
精华主题: 1 篇
发帖数量: 520 个
工控威望: 831 点
下载积分: 5757 分
在线时间: 387(小时)
注册时间: 2011-06-13
最后登录: 2024-11-14
查看guangyu85的 主题 / 回贴
2楼  发表于: 2020-07-20 20:53
你自己把逻辑关系想清楚,程序就出来了
cythyx
级别: 家园常客
精华主题: 0
发帖数量: 452 个
工控威望: 527 点
下载积分: 1634 分
在线时间: 106(小时)
注册时间: 2019-06-27
最后登录: 2024-10-14
查看cythyx的 主题 / 回贴
3楼  发表于: 2020-07-21 08:25
没有办法就用最笨的方法,一个一个地址比较找出来
13771165220
级别: 家园常客
精华主题: 0
发帖数量: 323 个
工控威望: 553 点
下载积分: 1601 分
在线时间: 85(小时)
注册时间: 2017-11-27
最后登录: 2024-11-13
查看13771165220的 主题 / 回贴
4楼  发表于: 2020-07-21 16:39
梯形图可以循环变址相加,然后判断,如果和等于你输入的数就保存下来,相当于求排列组合。
13771165220
级别: 家园常客
精华主题: 0
发帖数量: 323 个
工控威望: 553 点
下载积分: 1601 分
在线时间: 85(小时)
注册时间: 2017-11-27
最后登录: 2024-11-13
查看13771165220的 主题 / 回贴
5楼  发表于: 2020-07-21 16:53
Z0 为第一个数地址,比如Z0等于0找出的是第一个数
Z1为第二个数地址。
最后求出Z0=3 Z1=5
就是说数组中第四个数和第六个数。因为是从0开始算第一个数。
附件: qiuhe.rar (160 K) 下载次数:138
网站提示: 请不要用迅雷下载附件,容易出错
本帖最近评分记录:
  • 下载积分:+5(sqpfanglin)
    suegu2
    级别: 家园常客
    精华主题: 0
    发帖数量: 319 个
    工控威望: 584 点
    下载积分: 6619 分
    在线时间: 274(小时)
    注册时间: 2012-09-22
    最后登录: 2024-11-15
    查看suegu2的 主题 / 回贴
    6楼  发表于: 2020-07-21 21:19
    引用
    引用第5楼13771165220于2020-07-21 16:53发表的  :
    Z0 为第一个数地址,比如Z0等于0找出的是第一个数
    Z1为第二个数地址。
    最后求出Z0=3 Z1=5
    就是说数组中第四个数和第六个数。因为是从0开始算第一个数。

    把 MOV K0 Z1这步改成 ADD Z0 K1 Z1能节省点时间
    13771165220
    级别: 家园常客
    精华主题: 0
    发帖数量: 323 个
    工控威望: 553 点
    下载积分: 1601 分
    在线时间: 85(小时)
    注册时间: 2017-11-27
    最后登录: 2024-11-13
    查看13771165220的 主题 / 回贴
    7楼  发表于: 2020-07-23 16:01
    引用
    引用第6楼suegu2于2020-07-21 21:19发表的  :

    把 MOV K0 Z1这步改成 ADD Z0 K1 Z1能节省点时间


    嗯,完美。
    lyg1980
    级别: 略有小成
    精华主题: 0
    发帖数量: 135 个
    工控威望: 390 点
    下载积分: 1457 分
    在线时间: 26(小时)
    注册时间: 2008-11-10
    最后登录: 2024-11-17
    查看lyg1980的 主题 / 回贴
    8楼  发表于: 2020-07-23 18:03
    wcb516358
    级别: 略有小成
    精华主题: 0
    发帖数量: 55 个
    工控威望: 217 点
    下载积分: 1487 分
    在线时间: 51(小时)
    注册时间: 2015-10-22
    最后登录: 2024-10-30
    查看wcb516358的 主题 / 回贴
    9楼  发表于: 2020-07-24 11:02
    非常感谢各位同行的回复,特别是5楼的大兄弟值得表扬。
    wcb516358
    级别: 略有小成
    精华主题: 0
    发帖数量: 55 个
    工控威望: 217 点
    下载积分: 1487 分
    在线时间: 51(小时)
    注册时间: 2015-10-22
    最后登录: 2024-10-30
    查看wcb516358的 主题 / 回贴
    10楼  发表于: 2020-07-24 11:13
    引用
    引用第5楼13771165220于2020-07-21 16:53发表的  :
    Z0 为第一个数地址,比如Z0等于0找出的是第一个数
    Z1为第二个数地址。
    最后求出Z0=3 Z1=5
    就是说数组中第四个数和第六个数。因为是从0开始算第一个数。


    目前这个问题我已经想到1个方法解决,我在这抛砖引玉,期待有更多同行的思路。

    方法1:用减法的方式,按数值从大往小开始做减法运算。25-20>0,则表示有20,有效;(25-20)-10<0,则表示没有10,无效;(25-20)-5=0,则表示有5,有效;如果25-20-5>0则继续减去下1个数字,如果等于0,则减法运算结束。
    [ 此帖被wcb516358在2020-07-24 11:19重新编辑 ]
    我要努力努力
    级别: 探索解密
    精华主题: 0
    发帖数量: 36 个
    工控威望: 135 点
    下载积分: 811 分
    在线时间: 24(小时)
    注册时间: 2018-11-14
    最后登录: 2024-04-08
    查看我要努力努力的 主题 / 回贴
    11楼  发表于: 2020-07-27 10:57
    哎   哎。。。。
    附件: 1.zip (176 K) 下载次数:40
    网站提示: 请不要用迅雷下载附件,容易出错
    本帖最近评分记录:
  • 下载积分:+1(13771165220) 好贴好贴!