西门子子程序怎么编写,西门子系统怎样调用子程序实例

首页 > 经验 > 作者:YD1662022-11-14 16:42:49

本楼主上一篇小文《西门子S71200 1500的模拟量线性转换及数据处理》中详细介绍了博途软件中,模拟量的采集和数据处理问题。

在此做一简单的复习,以便引出今天的主题。

常见模拟量采集一般分4-20mA,0-20mA,0-10V,±10V的采集。上述信号按单双极信号分为:单极性和双极性。

单极性:4-20mA,0-20mA,0-10V。

双极性:±10V。

在组态时要选择采集的信号类型。组态完成后,模拟量的采集要经过以下几步:

第一步:看是单极性,还是双极性,单极性对应0-27648,双极性(-10V到10V)对应-27648—27648,

第二步:调用模块,并赋值。注意其数据类型,一般的%IW0为INT,转换后位REAL。

举例:4-20mA压力传感器,对应0-50MPa。

西门子子程序怎么编写,西门子系统怎样调用子程序实例(1)

图1.4-20mA,0-50MPa压力传感器数据采集及处理

在博图中处理模拟量的数据采集和线性变换经过上述两步就可以了。其中,NORM_X包含了数据转换的过程。

下面介绍一种更通用更好理解的数据线性转换方法。

1. 线性变换原理

这个也在上一篇文章中讲过来,但讲的不是很详细,这里再介绍一下。

西门子子程序怎么编写,西门子系统怎样调用子程序实例(2)

图2.线性变换原理图

西门子子程序怎么编写,西门子系统怎样调用子程序实例(3)

图3.线性变换两点式

线性变换的原理很简单,就是已知两点(x1,y1), (x2,y2)求(x,y)。比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。

2. 线性变换子程序编写。

这个子程序的编写原理也很简单,就是通过(x1,y1), (x2,y2)四个变量,通过 -×÷表示出y与x的关系就可以。这个原理的编写我在比较早的一篇文章中写过,只不过哪时候主推PLC300,写起来更麻烦,这次用博图编写更简单一些。

新建一个功能块FC2:线性变换

新建变量:把所需的变量输入如下:

西门子子程序怎么编写,西门子系统怎样调用子程序实例(4)

图3.FC(线性变换)子程序变量

用CALCULATE编写公式。

西门子子程序怎么编写,西门子系统怎样调用子程序实例(5)

图4.FC(线性变换)子程序编写

从上图可以看出,直接用CALCULATE指令就可完成线性变换的任务,但是这样写容易出错。为了更方便的记忆和调用,在FC(线性变换)中调用指令CALCULATE,然后再在线性变换的时候调用FC(线性变换)即可。一次写好,以后所有的线性变换都可以用了。

3. 线性变换子程序应用

4-20mA压力传感器,对应0-50MPa。4-20mA单极性,对应0-27648。

程序编写如图所示。这个比起博途自带的线性变换更好理解一些。如果是专用与处理模拟量的采集,可以把INT转换为Real这一步也写进FC(线性变换)子函数中。

西门子子程序怎么编写,西门子系统怎样调用子程序实例(6)

图5.4-20mA压力传感器,对应0-50MPa。4-20mA单极性,对应0-27648。

本文为作者 智能工控702原创,版权所有,侵权必究。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.