谁明白S7200的模拟量编程 点击:3364 | 回复:17



城外月光

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-17 19:11:03
楼主

本公司原有S7300与S7200主从电台通信,因为原有界面陈旧,外加为适应更大范围自控我更改了组态软件,用的是WINCC,原来是VB一类,现在发现原有电压电流数值均不对,后经检查发现,原有模拟量变送器用的4-20MA的,经试验发现实际在程序中应该使用0-20MA变送器,否则就会出现电压无输入时显示90V,电流无输入时显示20A,而电压一般正常多显示到460,使用0-20m变送器一切正常,但是我也不能更换几十个变送器,而原来组态显示能差不多正常怀疑是在软件上做了更改,WINCC的直接显示,就露出这个问题,有谁明白怎么更改程序的,贴上那段语句,MOVB IB0,VB39           

                                                 MOVW  AIW0,VW12

                                                DIV   +333,VD10

                                                 MOVW  AIW2,VW16

                                                DIV   +71   ,VD14

                                                MOVW   AIW4,VW20

                                                 DIV   +256   ,VD18

                                                -I    +75VW20

                                                                           



楼主最近还看过



宝马760LI

  • 精华:2帖
  • 求助:11帖
  • 帖子:186帖 | 4421回
  • 年度积分:0
  • 历史总积分:25033
  • 注册:2005年11月18日
发表于:2012-01-17 22:48:05
1楼

顶起来,我找技术给你处理一下。你发给软件栏目那小窗信息,缘来如水版主,我已经告诉他帮你处理。

ye_w

  • 精华:23帖
  • 求助:1帖
  • 帖子:84帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2012-01-18 09:29:03
2楼

对于S7-200而言,本来就没有4-20mA这样的DIP量程设置,所以当DIP设置成0~20mA是,4-20mA在PLC中的显示数值是6400-32000(当然有误差)。

 

然后请使用一次线性方程来求解工程值。当然也可以直接在官方网站下载Micro‘n Power,在该文档中有Scaling库下载,调用相应的指令即可。这样就无需在上位机中量程转换了。

 

还有你这段程序可以取消偏置计算等

水中鱼

  • 精华:43帖
  • 求助:4帖
  • 帖子:324帖 | 3802回
  • 年度积分:0
  • 历史总积分:15038
  • 注册:2011年11月10日
发表于:2012-01-18 16:18:38
3楼
先学习一下,期待更多高手捧场。

wyb2866255

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-01-18 21:42:52
4楼

    根据你画出的程序,知PLC是S7-200,所用模块为EM235,原有模拟量变送器用的4-20MA的不用换,仍用,只是你编程时用的转换公式不对,你是按0~20ma对应被测量0~最大值,而变送器的输出4~20 ma 对应被测量值0~最大值。应按下面转换公式编程求被测量就行

       

      以你说的电压无输入时显示90V,就是原有模拟量变送器在被测电压=0时输出的电流(4ma),你是按过0 的直线方程计算的: 电压最大值应=450V,对应数字量为32000,直线斜率K=32000÷450=71,故输入4ma 时其数字量=6400,计算电压值=6400÷71=90V.(即你的程序第三条: MOVW  AIW2,VW16       DIV   +71   ,VD14)

      你按上面的公式重新编程就不会产生显示错误:4ma时数字量AIW0=6400,带入公式,所求量程值(电压)=0.

 

     

      

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-19 17:18:42
5楼
回复内容:
对:wyb2866255关于    根据你画出的程序,知PLC是S7-200,所用模块为EM235,原有模拟量变送器用的4-20MA的不用换,仍用,只是你编程时用的转换公式不对,你是按0~20ma对应被测量0~最大值,而变送器的输出4~20 ma 对应被测量值0~最大值。应按下面转换公式编程求被测量就行              以你说的电压无输入时显示90V,就是原有模拟量变送器在被测电压=0时输出的电流(4ma),你是按过0 的直线方程计算的: 电压最大值应=450V,对应数字量为32000,直线斜率K=32000÷450=71,故输入4ma 时其数字量=6400,计算电压值=6400÷71=90V.(即你的程序第三条: MOVW  AIW2,VW16       DIV   +71   ,VD14)      你按上面的公式重新编程就不会产生显示错误:4ma时数字量AIW0=6400,带入公式,所求量程值(电压)=0.              内容的回复:
这个数据我早就算过,程序不是我设计,我是刚刚入行,我是希望 提供如何在语句编程把这些计算加进去,梯型图就免了,这个完整程序是语句表的而且是不能 转成梯型图的,如果你会编程帮我写几句语句,非常感谢!

自动化英才网

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 200回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2010年10月09日
发表于:2012-01-19 18:00:55
6楼
行业新人过来学习!~

观沧海

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 27回
  • 年度积分:0
  • 历史总积分:165
  • 注册:2004年11月07日
发表于:2012-01-20 16:28:53
7楼

完全没有必要计算,在WCNCC中,如果你建立的是个模拟量变量(不是布尔型的),你可在建立变量时使用其线性标定功能,如0-20MA。对应的AIW=0~32000,你要在WINCC中显示0~100,那么你可使32000对应100,0对0 ,这样WINCC会自动计算比例,从而显示正常值。

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-20 16:43:03
8楼
这个我也试验了,但是很容易出现超出显示*

wyb2866255

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-01-28 18:05:40
9楼

楼主:今日才看此贴,对你5楼提出的要求,用语句表进行编程,见下表:

TITLE=子程序注释

Network 1 // 实数运算

// VD100 AIW2       VD104 最大量程(如  电压:450.0V  VD112:中间运算数    VD108:求出的量程值

LD     SM0.0

MOVR   VD100, VD112

-R     6400.0, VD112

*R     VD104, VD112

MOVR   VD112, VD108

/R     25600.0, VD108

      这是用实数运算,也可用整数运算,用那种运算取决你的计算精度要求。你可以用此程序代替原程序,测测看!

wyb2866255

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-01-28 19:09:02
10楼

用这段程序:

LD     SM0.0
ITD    AIW2, VD100               //将整数AIW2转换为双整数VD100
DTR    VD100, VD112             //将双整数VD100转换为实数
VD112

-R     6400.0, VD112              // VD112 - 6400.0-->VD112 
*R     450.0, VD112               // VD112*450.0 -->VD112

MOVR   VD112, VD14            // VD112 -->VD14
/R     25600.0, VD14             // VD14 / 25600.0-->VD14

代替你原有的这段程序:    MOVW  AIW2,VW16

                                     DIV   +71   ,VD14       // AIW2 / 71-->VD14  (求电压)

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-29 18:56:28
11楼
谢谢你啊,我明天试试!

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-29 19:14:10
12楼

我看了一下你帮我编写的程序,我程序没发全,最终运算结果要回到VW16中,也就是AIW2,VW16    ————MOVW   VW12, VW33
MOVW   VW16, VW35
MOVW   VW20, VW37
CALL   SBR_3

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-29 20:04:11
13楼

ITD    AIW2, VD14
*D     450, VD14
/D     25600, VD14
DTI    VD14, VW16

因为家里无法试验,我这么改不知道怎么样

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-29 20:10:40
14楼

ITD    AIW2, VD14
-D     6400, VD14
*D     450, VD14
/D     25600, VD14
DTI    VD14, VW16

wyb2866255

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-01-30 17:19:16
15楼
你这是整数运算,完全正确!

wyb2866255

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-01-30 17:29:25
16楼
13楼编写的程序还应加 LD     SM0.0  语句,否则编译会出现错误指示。

城外月光

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2009年3月02日
发表于:2012-01-31 16:30:20
17楼
我的程序装上出现 个问题,第一段电流的很正常,但是第二段电压出现负数超出,如果是两段程序怎么连呢,好像后段接着计算前段的了

热门招聘
相关主题

官方公众号

智造工程师