【分享】模拟量转换真的很简单

已锁定

愿我能

西门子1847工业学习平台

  • 帖子

    3007
  • 精华

    7
  • 被关注

    283

论坛等级:至圣

注册时间:2009-11-06

白金 白金 如何晋级?

【分享】模拟量转换真的很简单

6274

23

2016-08-02 03:43:53

      在找答案板块中经常遇到一些新手提问关于模拟量怎样转换的问题。有的人知道西门子系统库有专门的块可以直接使用,例如模拟量输入转换块FC105。但是不明白块指令各个管脚的定义及含义。即使看了帮助文件,也搞不太明白。其实,我们完全不需要使用系统块指令,自己编写程序就可以实现。

    我们都知道大多数传感器输出信号和其测量数值成比例关系,即直线关系。我们可以使用数学表达式表达:Y= k X+b  这里举个最简单的例子。有一个4线制液压压力传感器,其量程也就是测量范围是0-400bar ,输出4-20ma电流信号。即 当传感器检测到液压压力为0bar,输出4ma 电流信号,当传感器检测到液压压力为400bar,输出20ma电流信号。4-20ma对应模拟量数值0--27648 。根据上述线性关系可以画出直线。见下图;






从上图我们得知:b=0 ,k=400/27648 即 Y=400 X/27648 。由于有除法运算,为了提高运算结果精度,我们使用浮点数运算。根据数学表达式我们可以轻松得写出程序。假设模拟量输入地址是PIW 264,转换结果保存在MD0中。程序如下:

   L PIW264  //把PIW264装载到累加器1中低16位

    ITD          //整数转换双整数,结果保存在累加器1中

    DTR        //双整数转换浮点数,结果保存在累加器1中 

  L 400.0      //把400.0 装载到累加器1中,原累加器1中内容复制到累加器2中

    *R            //累加器2内容与累加器1内容相乘结果保存在累加器1中

  L  27648.0   //把27648.0装载到累加器1中,原累加器1中内容复制到累加器2中

     /R             //  累加器2内容除以累加器1中内容,结果保存在累加器1中

  T MD0        //累加器1中内容传送到MD0中。

当然,我们也可以使用梯形图指令实现同样的功能。因为梯形图中对数据类型有严格的要求,PIW 264 是WORD 数据类型,因此我们需要先将PIW 264赋值给整数类型变量MW10  。程序见下图:







当然,这个是最简单的模拟量转换。但是,只要我们明白了原理,再复杂的模拟量转换,我们只要画出图形,写出数学表达式,根据数学表达式就可以快速正确的编写出程序。

 


【分享】模拟量转换真的很简单 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。