如何转换S7-1200 CPU模拟量

n

问题:在S7-1200 CPU中,如何实现模拟量数值与工程量数值之间的转换?n

回答:本文档提供了程序库例程FC105,FC106,用户可以使用它们将模拟量输入/输出的整数数值与工程量单位之间进行转换。用户需要将此例程安装到程序库中。n

步骤1:解压缩“analog_convert.rar”(201111817528726.rar ( 307 KB ) )文件到一个文件夹。
步骤2:打开STEP7 Basic中的“Libraries Tab”, 点击“Open global library”图标n

如何转换S7-1200 CPU模拟量

图1n

步骤3:选择“analog_convert”库所解压的文件夹。n

如何转换S7-1200 CPU模拟量
图2n

步骤4:在添加程序库后,FC105(SCALE),FC106(UNSCALE)即可以被添加到用户程序中。n

如何转换S7-1200 CPU模拟量
图3n

参数解释:
1. 用户可以使用本例子所提供的FC105将模拟量输入模板的整数数值转换为工程量数值。对于FC105的输入/输出参数解释如下:n

参数 类型 数据类型 存储区 描述
EN 输入 BOOL I, Q, M, D, L 信号状态 “1”,激活该块。
ENO 输出 BOOL I, Q, M, D, L 块执行无错误时,输出信号状态 “1”。
IN 输入 INT I, Q, M, D, L,常数 需转化的整数输入值。
HI_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的高限值。
LO_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的低限值。
BIPOLAR 输入 BOOL I, Q, M, D, L,常数 信号状态“1” 表示双极性输入值。
信号状态“0” 表示单极性输入值。
OUT 输出 REAL I, Q, M, D, L, 转化后的工程量结果。
RET_VAL 输出 WORD Q, M, D, L, 当操作没有错误,输出值 W#16#0000。

表1:FC105 参数n

参数转化关系:
OUT = [((FLOAT (IN) – K1)/ (K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
注意:如果用户使用的输入/输出类型为双极性(如±10V,±5V等),BIPOLAR参数应当给定为TRUE,此时K1=-27648,K2=27648,否则K1=0,K2=27648。

例如:假设模拟量模块所接传感器为0-20mA 类型,其测量对象为温度,当温度为0℃时电流为0 mA,当温度为100℃时电流为20 mA。此时模拟量输入模块得到的对应数值0 mA对应为0,20 mA对应为27648。如果当前电流值为10 mA,则模拟量模块得到的输入值为13824,如果用户希望在CPU中得到一个最终的实际温度值,则可以调用FC105,将模拟量输入模块的数值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,即可在输出参数OUT得到实际温度值50℃。n

如何转换S7-1200 CPU模拟量

图4:FC105 使用例子n

2. 用户可以使用本例子所提供的FC106将工程量值转换为模拟量输出模板所需要的数值。
对于FC106的输入/输出参数解释如下:n

参数 类型 数据类型 存储区 描述
EN 输入 BOOL I, Q, M, D, L 信号状态 “1”,激活该块。
ENO 输出 BOOL I, Q, M, D, L 块执行无错误时,输出信号状态 “1”。
IN 输入 INT I, Q, M, D, L,常数 工程量给定值。
HI_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的高限值。
LO_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的低限值。
BIPOLAR 输入 BOOL I, Q, M, D, L,常数 信号状态“1” 表示双极性输入值。
信号状态“0” 表示单极性输入值。
OUT 输出 REAL I, Q, M, D, L, 转化后的整数结果。
RET_VAL 输出 WORD Q, M, D, L, 当操作没有错误,输出值 W#16#0000。

表2:FC106 参数

参数转化关系:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
注意:如果用户使用的输入/输出类型为双极性(如±10V等),BIPOLAR参数应当给定为TRUE,此时K1=-27648,K2=27648,否则K1=0,K2=27648。

例如:假设模拟量输出模块输出设置为0-20mA 类型,其所连接的执行器为调节阀。当电流为0 mA时阀门开度为0%,当电流为20 mA时阀门开度为100%。如果用户希望阀门开度为50%,则可以调用FC106,将开度给定值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,将模拟量输出模块的地址赋给参数OUT,此时OUT数值为13824,即可使模拟量输出模块输出电流值为10 mA,即阀门开度为50%。

如何转换S7-1200 CPU模拟量

图5:FC106 使用例子

注意:
1.本例程中的程序使用类似于STEP7 中提供的FC105/106,用户可以参考如下链接的FAQ:
1765297

2.用户也可使用如下链接的FAQ完成对S7-1200模拟量的转化:
39334505

关键词
S7-1200,STEP7 Basic,模拟量转换

附件下载:

201111817519683.rar (428 KB) ( 428 KB )

201111817528726.rar (307 KB) ( 307 KB )

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论