PLC300怎么编辑模拟量取平均,用梯形图,放在哪个模块呢
问题补充:
变量图在此
图片说明:
最佳答案
1、模拟量取平均值是模拟量信号采样滤波方式其中之一。这种程序最好应用STL(指令表语言)来编写。模拟量取平均值程序放在按特定的次数读取模拟量值完成之后来执行。
《模拟量信号采样滤波及STEP7语言的实现》连接:
http://wenku.baidu.com/view/8da0c4d4b9f3f90f76c61ba4.html
《有关采样滤波的编程》:
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=56045&cid=1029
2、可以将将n次读入的模拟量值存入一个地址连续的区域(例如DB),其后应用冒泡排序法(从小到大)进行排序后,取中间值即可。有关S7-300的冒泡排序法程序:
注意,应用梯形图不能编制地址指针寻址,因此需要STL来编写:
转帖:假定十个数据,放在DB1中,安放顺序如下:
DBW0
DBW2
…
DBW18
下面是西门子的程序
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 DBW [AR1,P#0.0]
L DBW [AR1,P#2.0]
<I
JC LL2 ////比较前后两个值,如果前面大于后面的,则前后数据交换
L DBW [AR1,P#0.0]
T MW10//临时变量
L DBW [AR1,P#2.0]
T DBW [AR1,P#0.0]
L MW10
T DBW [AR1,P#2.0]
LL2: +AR1 P#2.0 ////指针自动进行加4,因为是整数型数据,所以要跳过2个字节
L MB 2
LOOP LL1 ///这个指令自动的将A寄存器里的值减1
L MB 0
LOOP LL0
提问者对于答案的评价:
我采集15个模拟量,每个模拟量采集11次,不知道会超不
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233424.html