S7-200模拟量怎么读取? 点击:3782 | 回复:10



wanshengjiang

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:87
  • 注册:2005年12月28日
发表于:2008-09-09 12:15:19
楼主
请各位帮我解释一下模拟量的读取好吗?打个比方,现在能检测到压力5KG,在程序里面怎样转换才行?谢谢大家!



wjj765

  • 精华:0帖
  • 求助:0帖
  • 帖子:28帖 | 588回
  • 年度积分:0
  • 历史总积分:1807
  • 注册:2005年11月16日
发表于:2008-09-09 12:37:52
1楼

我记得好象是  200里是0-32767   然后对应你的压力量程0-最大  换算一下就行了

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2008-09-09 12:58:06
2楼

我回答一个网友的叙述,转述如下:   

其实,你犯了1个概念性的错误——没理解PID功能块的控制方式。你明白以后就知道自己错在哪里了,下面我们先看看这个功能块。

    PID功能块的控制方式:
    当自动条件不满足时执行手动输出,输出手动设定值;
    当自动条件满足时执行自动输出,输出PID运算结果;
    PID运算方式:把反馈值(这里为AIW0)和设定值(这里为AC0)拿来比较,进行计算:
       比例:如果反馈值比设定值大——就减小输出(这里指负作用控制);
       积分和微分:如果......不写了,太多了@_@

    你的程序错误错在AC0了——应当这样计算(下面举一个复杂一点的例子,你以后可能会用到——单极和 20% 的偏移量):
    假设变送器的量程范围是0-50摄氏度对应4-20mA信号,而模拟量输入模块的量程范围是0-20mA对应0-32000(注意:没有4-20mA对应于0-32000这种说法),那么0-50摄氏度就对应于6400-32000。
    你可以把这个变送器输入的信号(例如AIW0)直接作为PID的反馈(也就是过程变量),但是在PID向导中设定输入单极性,偏移20%,输入下限6400,输入上限32000。
    那么给定值怎么算呢?请看下面:
    既然知道0-50摄氏度对应于6400-32000,那么如果给定35摄氏度,PID功能块的SP应该为多少呢?当然,不能直接为35摄氏度(你就犯了这个错误),应该做以下计算:
    公式推导:已知0-50摄氏度对应于6400-32000,那么就得到一条直线(你可以用XY坐标画出来,初中学的哟@_@)。假设Y为温度值(0-50摄氏度),X量程(0-32000),就可以得到如下公式:50/(32000-6400)=Y/(X-6400)。
    计算:SP设定值=[Y*(32000-6400)/50]+6400
          这个Y就是人机上的温度设定值。
    当然,你的信号是0-50度对应0-32000,更简单,你按照该方法做就行了。
    我在手册上和网上好像没有找到比我说的更详细的了,呵呵

baobaoyijiaqin

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 30回
  • 年度积分:0
  • 历史总积分:85
  • 注册:2008年9月09日
发表于:2008-09-09 13:10:17
3楼
同意上述的回答!

baobaoyijiaqin

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 30回
  • 年度积分:0
  • 历史总积分:85
  • 注册:2008年9月09日
发表于:2008-09-09 13:11:38
4楼
但是回答不够切入主题

macall

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 112回
  • 年度积分:0
  • 历史总积分:679
  • 注册:2006年6月16日
发表于:2008-09-09 13:37:18
5楼
用SCALE块,转换成工程量,填写工程量上限5,下限0就行,输出值就是实际测量的工程量

jianshu1988

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2010年9月14日
发表于:2010-09-14 16:35:53
6楼
有一个问题想再次请教2楼的老大,西门子s7-200中PID向导要求过程变量,设定值,输出值类型是整数或实数,而且必须在0.0~1.0之间,依你那个算法,如果设定温度定35度,那么按照算法,SP=24320,这个怎么解决?

xjzlyg

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 2364回
  • 年度积分:0
  • 历史总积分:13554
  • 注册:2005年7月09日
发表于:2010-09-14 17:07:49
7楼
要有个传感器把压力转化成PLC能识别的信号

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-09-14 17:22:48
8楼
引用xjzlyg 的回复内容:要有个传感器把压力转化成PLC能识别的信号


一般都是使用变送器,多是4-20mA的输出。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-09-15 09:13:17
9楼

1、根据你检测压力的范围,选择适合的压力传感器或变送器,如能直接输出4-20MA的电流信号最好,如搞不到,其输出信号为0-20mV,可到电子市场购买一块“0-20 mV转换为4-20ma的集成块”按该块提供的线路图做块电路板。

2、选用模拟量输入模块(有4-20ma输入信号最好,如没有可用0-10V输入量模块,再用一个500欧电阻,将4-20ma转换为2-10V接模块对应电压输入端)变模拟信号为数字量(如AIW0)从模块的参数可找出10V(或20ma)对应的数字量AIW0m(如:32000),可求出2V(或4ma)对应的数字量AIW0n=AIW0m / 5(如:6400)

3、设压力传感器或变送器输出为4ma时对应压力值为PA0(如:0KG),输出为20ma时对应压力值为PA1(如:10KG),则数字量转换压力值的公式为:P = PA0 + PA1 * (AIW0-AIW0n)/ (AIW0m-AIW0n)

如: P = 0 + 10 * (AIW0 - 6400)/ (32000 - 6400)=10 * (AIW0 - 6400)/  25600

少江

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 121回
  • 年度积分:0
  • 历史总积分:393
  • 注册:2010年2月04日
发表于:2010-09-15 10:43:00
10楼


看了老菜鸟的回答有一种豁然开朗的感觉,顿悟了!


热门招聘
相关主题

官方公众号

智造工程师