各位高手,请看下面的一段程序:西门子PLC引入模拟量的话就是
TITLE=液位控制中断子程序
Network 1 // 单极性数值转化为PID标准化数值
LD SM0.0
XORD AC0, AC0 //累加器清零
ITD AIW0, AC0 //采集水位值
ITD AIW0, AC1
DTR AC0, AC0 //将采集到的水位值转换为实数
/R 32000.0, AC0 //对单极性的实数水位值标准化
MOVR AC0, VD100 //将水位值的标准化结果填入PID回路表
Network 2 // PID运算
LD SM0.0
PID VB100, 0 //调用PID功能
Network 3 // 把PID标准值转化成实际输出值
LD SM0.0
MOVR VD108, AC0 //取出PID回路运算结果
*R 32000.0, AC0 //取PID回路运算结果的控制量,进行逆标准化(即转换为工程量)
ROUND AC0, AC0 //取整
DTI AC0, AC0 //双整数至整数
MOVW AC0, AQW0 //输出模拟量
1、这里面的VD108是其什么作用的?如果此处改成VD128行不行?我在其他很多程序里也看到这里直接就出来VD108了,前后都没有出现过。
2、受控原件的是0-10V的还是4-20毫安的?怎么区别,不会受控原件是0-10V或4-20毫安,或者1-10V或者0-20毫安,这块程序都一样吧?怎么区分。谢谢高手赐教!
问题补充:
首先感谢haohuai这位仁兄的回答,再问
VD108是运算结果,VD128是什么?VD108是因为前面的VD100(VB100)吗 ?如果前面是VD200(VB200),那这里“MOVR VD108, AC0 //取出PID回路运算结果”就是VD208 ?
我不是问受控原件接受的是0-10V还是4-20毫安还是1-10V还是0-20毫安。我问的是模拟输出那块的程序,如果受控原件是0-10V控制的,那块程序怎么写,如果是4-20毫安(1-10V、0-20毫安)。模拟输出那块的程序应该不一样吧,对于不同的受控原件,在程序上怎么区别的?谢谢
最佳答案
1 你看2007年9月版手册的167页。
到下载中心 http://www.ad.siemens.com.cn/download/
文档编号:1017
文档类型: 手册
文档中文标题: S7-200 可编程控制器系统手册
日期: 2008/8/1
大小:12.81MB
2 不一样的是输出的接线方式,计算过程是一样的。
1 不行,VD108是运算结果,VD128是什么?
PID功能块通过一个PID回路表交换数据,这个表是在V数据存储区中的开辟,长度为36字节。因此每个PID功能块在调用时需要指定两个要素:PID控制回路号,以及控制回路表的起始地址(以VB表示)。
2 受控原件的是0-10V的还是4-20毫安的?怎么区别
这个要看具体的受控元件的说明书呀。
提问者对于答案的评价:
非常感谢,把分给你
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc319123.html