全国服务热线 15821971992

6ES7516-3AP03-0AB0|维修保养

更新时间:2023-10-26 04:00:00
价格:请来电询价
品牌:西门子
型号:模块
产地:德国
联系电话:15821971992
联系手机: 15821971992
联系人:聂聪
让卖家联系我
详细介绍

默认情况下,STEP 7-Micro/WIN SMART没有集成模拟量处理的指令,我们需要自己编写量程转换的子程序才能完成模拟量的处理。这种量程转换的原理可以看看我之前写的文章(怎样将模拟量的信号值转换成工程量值?)。今天这篇文章,我想告诉大家一种相对简单的模拟量处理方式——使用Scale指令库。

Scale指令库其实也是西门子内部人员编写的,但不是官方正式发布的。我觉的这个指令库还是蛮方便的,值得推荐给大家使用。下面我们分两个步骤介绍:1)怎样添加Scale指令库?2)怎样使用里面的指令?

1、怎样添加Scale指令库?

首先需要下载Scale指令库。从哪里下载呢?可以到西门子的网站上搜索,另外文章的末尾提供下载的方法。

下载好后,将其放在一个指定的文件夹中。然后打开STEP 7-Micro/WIN  SMART ,单击【工具】菜单的【选项】按钮,在弹出的对话框中,单击【项目】,你会看到一个用户库文件夹路径的设置,其默认路径如下图:

 

你可以将下载的Scale指令拷贝到这个文件夹中,也可以单击【浏览】将用户库文件夹指定到你当前存放的路径,单击【确定】后,就可以在【指令】-【库】中看到你新添加的scale指令。

下面这张图是我添加用户指令库前后的对比(当然,除了Scale还添加了一些其它指令库):

 

2、怎样使用Scale指令库

Scale指令库(v1.2)中有三条指令:S_ITR、S_RTR、S_RTI。名称中的"S"代表"Scale",表示"量程";"I"代表"Integer",即"整数";"R"代表"Real",即"实数";"T"代表"To",即"转换"的意思;

这样就很好理解了,比如:S_ITR,就表示 Scale ,integer to real ,也就是整数到实数的量程转换;而S_RTI,就表示,Scale,real to integer,也就是实数到整数的量程转换;S_RTR,就表示,Scale,real to real,也就是实数到实数的量程转换;

下面来具体看一下:

2.1、S_ITR

    该指令可以处理模拟量输入信号,并转换成相应的工程值,其初始添加到程序块中的状态如下图所示:

 

该指令有6个输入参数和1个输出参数,含义如下:

  • EN:布尔值,指令使能;

  • Input:整数,要转换的变量;

  • ISH:Input Scaled High,整数,输入量程的上限;

  • ISL:Input Scaled Low,整数,输入量程的下限;

  • OSH:Output Scaled High,实数,输出量程的上限;

  • OSL:Output Scaled Low,实数,输出量程的下限;

  • Output:实数,转换后的变量;

举例说明:

    假设模拟量输入模块连接的外部压力传感器,输入信号为0~20mA的电流信号,压力的范围为0~10000 mbar,输入通道的地址为:AIW16,转换后数据存放在VD0中,则代码如下:

 

如果压力传感器的信号为4~20mA,则需要把ISL的值改为5530,代码如下:

 

2.2、S_RTI

该指令可以将工程值转换成模拟量值进行输出,其初始添加到程序块中的状态如下:

 

该指令有6个输入参数和1个输出参数,含义如下:

  • EN:布尔值,指令使能;

  • Input:实数,要转换的变量;

  • ISH:Input Scaled High,实数,输入量程的上限;

  • ISL:Input Scaled Low,实数,输入量程的下限;

  • OSH:Output Scaled High,整数,输出量程的上限;

  • OSL:Output Scaled Low,整数,输出量程的下限;

  • Output:整数,转换后的变量;

举例说明:

    假设使用4~20mA的模拟量输出信号控制比例阀的输出压力,其输出量程范围为:0~6000mbar,输出通道的地址为AQW32,输出压力设定值存放在VD4,则代码如下:

 

假设输出±10V的电压信号用于速度控制,正值表示正转,负值表示反转,转速juedui值的范围为:0~3000r/min,输出通道AQW34,输出设定值VD8,则代码如下:

 

2.3、S_RTR

该指令可以进行实数与实数的量程转换,它的输入参数和输出参数都是实数;

举个例子:

我们在实例1中获取了一个压力值放在VD0(pressureValue),它是范围为0~10000mbar的数值,我们想把当前压力值以其量程的百分数表示出来,转换值存放在VD12(pressurePercentage)中,就可以使用如下的代码:

 

好了,这就是Scale指令库的指令介绍,主要用于模拟量信号的处理。


联系方式

  • 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
  • 邮编:200093
  • 电话:15821971992
  • 经理:聂聪
  • 手机:15821971992
  • 传真:021-33556143
  • QQ:2724917714
  • Email:2724917714@qq.com