6ES7516-3AP03-0AB0|维修保养
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 联系电话
- 15821971992
- 全国服务热线
- 15821971992
- 经理
- 聂聪
- 所在地
- 上海市松江区广富林路4855弄88号3楼
- 更新时间
- 2023-10-26 04:00
默认情况下,step 7-micro/winsmart没有集成模拟量处理的指令,我们需要自己编写量程转换的子程序才能完成模拟量的处理。这种量程转换的原理可以看看我之前写的文章(怎样将模拟量的信号值转换成工程量值?)。今天这篇文章,我想告诉大家一种相对简单的模拟量处理方式——使用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 tointeger,也就是实数到整数的量程转换;s_rtr,就表示,scale,real toreal,也就是实数到实数的量程转换;
下面来具体看一下:
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~10000mbar,输入通道的地址为: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指令库的指令介绍,主要用于模拟量信号的处理。