您的位置:控制工程论坛网论坛 » 西门子社区 » 16个测点,相邻两点编程问题

martion

martion   |   当前状态:在线

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

注册时间: 2013-07-25

最后登录时间: 2019-12-19

空间 发短消息加为好友

16个测点,相邻两点编程问题

martion  发表于 2017/3/29 18:18:30      1572 查看 3 回复  [上一主题]  [下一主题]

手机阅读

我这现场有16个推力瓦压力,现要求相邻两点压力小于2时,停主电机。请问除了一个个比较写程序段外,有没有其他的便捷高效方法,谢谢

1楼 0 0 回复
  • sweect

    sweect   |   当前状态:在线

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

    注册时间: 2007-11-07

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

    空间 发短消息加为好友

    sweect   发表于 2017/3/29 21:08:49

    如果压力信号是连续的,用指针加循环的形式判断,任意两点偏差小于2的时候,跳出循环报错误的地方

    2楼 回复本楼

    引用 sweect 2017/3/29 21:08:49 发表于2楼的内容

  • swy

    swy   |   当前状态:在线

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

    注册时间: 2006-08-05

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

    空间 发短消息加为好友

    swy   发表于 2017/4/2 11:31:26

    按照你的要求是相邻两个点的压力值都小于2时就报警;简单利用指针和循环指令给你一个例子,供参考下:

    假如这个16个数值存在以MD100开始的16个双字里,压力的值一般都是浮点数吧,报警的信号放在M99.0里,


          CLR   

          SET   

          R     M     99.0            //初始化M99.0,也可做成手动复位的;

          LAR1  P#M 100.0            //取数据的首地址

          L     15    

    A01:  T     MW    90             //循环计算15次就够了

          A(    

          L     MD [AR1,P#0.0]       //第一个数比较

          L     2.000000e+000

          <R    

          )                          

          A(    

          L     MD [AR1,P#4.0]       //第二个数比较,注意P#4.0,一个双字的偏差

          L     2.000000e+000

          <R    

          )     

          JCN   A02                 //当有都小于2.0的数据时就置位M99.0

          S     M     99.0             

    A02:  +AR1  P#4.0               //地址寄存器自加一个双字的偏移量

          L     MW    90

          LOOP  A01                 //循环执行

    3楼 回复本楼

    引用 swy 2017/4/2 11:31:26 发表于3楼的内容

  • wangchen

    wangchen   |   当前状态:在线

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

    注册时间: 2010-03-25

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

    空间 发短消息加为好友

    wangchen   发表于 2017/4/2 14:26:11

    语句表编程还是有它的优势,结构比较清晰,能够减少编程的量。

    4楼 回复本楼

    引用 wangchen 2017/4/2 14:26:11 发表于4楼的内容

总共 , 当前 /