S7/300的模拟量的滤波问题

在200的系统中可以通过设置来进行滤波,(就是在一定的时间内取平均值),在300的模块中在哪儿设置这些

最佳答案

1、…..在300的模块中在哪儿设置这些…..?
S7-300/400没有这种功能,需要自己编程。
2、相关:
《AD采集滤波算法》连接:
http://blog.chinaunix.net/u3/98807/showart_2015379.html
《模拟量信号采样滤波及STEP7语言的实现》连接:
http://wenku.baidu.com/view/8da0c4d4b9f3f90f76c61ba4.html
《有关采样滤波的编程》:
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=56045&cid=1029
3、编程举例,例如用排序的方法,然后取中间值。
转帖:
如何实现冒泡排序(冒泡原理,学过语言的人都应该知道,如果不知道,请上网找一个吧,到处都是):
假定十个数据,放在DB1中,安放顺序如下:
DBD0
DBD4

DBD36
下面是西门子的程序
OPN   DB    1                 /////打开DB1这个数据块
      L     10  ////装载10到MB0中,因为有十个数据,要进行十次排序,9次也可以的
LL0:  T     MB    0
      L     P#0.0   ////装载地址指针,这是关键,不要搞错了
      LAR1  
      L     9
LL1:  T     MB    2   ////内部循环,进行9次,直到把最大值排到最后
      L     DBD [AR1,P#0.0]
      L     DBD [AR1,P#4.0]
      <R    
      JC    LL2          ////比较前后两个值,如果前面大于后面的,则前后数据交换
      L     DBD [AR1,P#0.0]
      T     #m_temp
      L     DBD [AR1,P#4.0]
      T     DBD [AR1,P#0.0]
      L     #m_temp
      T     DBD [AR1,P#4.0]
LL2:  +AR1  P#4.0     ////指针自动进行加4,因为是浮点数,所以要跳过4个字节
      L     MB    2
      LOOP  LL1       ///这个指令自动的将A寄存器里的值减1
      L     MB    0
LOOP  LL0

提问者对于答案的评价:
谢谢您,向您学习了

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐