您的位置:控制工程论坛网论坛 » 职业交流 » 能做到这个的都是300的高手

hypermill9

hypermill9   |   当前状态:在线

总积分:7709  2024年可用积分:0

注册时间: 2007-02-07

最后登录时间: 2023-08-18

空间 发短消息加为好友

能做到这个的都是300的高手

hypermill9  发表于 2015/6/16 10:34:16      1305 查看 3 回复  [上一主题]  [下一主题]

手机阅读

最近用300做一个水泵轮流运行的项目,假设有8台水泵,编号为1-8,分别对应q0.0-q0.7,根据液位的高低,液位高就多运行泵,液位低就少运行泵,需要运行的泵数量在MW0中,数量为1-8,

建立一张运行的表,最大条目数10,依次填入1-8,如图

这个表中的数值定时更换,每经过一段时间(如10分钟),第一个条目的数抽出送到第八个条目

如果某个泵,比如5号泵报警了,就从表中抽出,放在另一个表里面

以上功能都编程实现了,楼主现在想实现这样的一个功能:

根据MW0的值,来运行一定数量的泵,比如表里面的数值为 2、5、6、7、3、4、8、1,MW为5,则运行2、5、6、7、3号泵

想看看有几种方法?用指针怎么做?

1楼 0 0 回复
  • fung

    fung   |   当前状态:在线

    总积分:7506  2024年可用积分:1

    注册时间: 2006-11-24

    最后登录时间: 2023-08-16

    空间 发短消息加为好友

    fung   发表于 2015/6/16 12:47:45

    使用寄存器间接寻址,把表里的数值作为QB0的位地址部分即可,至于运行数量就更好办了,大于运行数量的部分直接关掉即可

    2楼 回复本楼

    引用 fung 2015/6/16 12:47:45 发表于2楼的内容

  • hypermill9

    hypermill9   |   当前状态:在线

    总积分:7709  2024年可用积分:0

    注册时间: 2007-02-07

    最后登录时间: 2023-08-18

    空间 发短消息加为好友

    hypermill9   发表于 2015/6/17 10:12:30

    不过这个最好用SCL编程或指令表编程,梯形图不支持间接寻址或使用指针

    3楼 回复本楼

    引用 hypermill9 2015/6/17 10:12:30 发表于3楼的内容

  • atmupkeep

    atmupkeep   |   当前状态:在线

    总积分:5759  2024年可用积分:0

    注册时间: 2011-05-08

    最后登录时间: 2023-08-15

    空间 发短消息加为好友

    atmupkeep   发表于 2015/6/18 13:50:10

    用SCL就so easy

    4楼 回复本楼

    引用 atmupkeep 2015/6/18 13:50:10 发表于4楼的内容

总共 , 当前 /