计算机模拟量与数字量的转换,在S7-1200 CPU中,如何实现模拟量数值与工程量数值之间的转换?...

在S7-1200 CPU中,如何实现模拟量数值与工程量数值之间的转换?本例程中的程序使用类似于STEP7 中提供的FC105/106.用户可以使用它们将模拟量输入/输出的整数数值与工程量单位之间进行转换。用户需要将此例程安装到程序库中。

步骤1:在西门子网站下载解压缩"analog_convert.rar"( ( 307 KB ) )文件到一个文件夹。

步骤2:打开STEP7 Basic中的"Libraries Tab", 点击"Open global library"图标

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

e0b5eb2cef7f47a4291664f6f9a28bef.png图1

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

a54878c80a02ccb38dbe84064d3b4e4e.png图2

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

572d9c852545dbcb609b4d361ae5e36c.png图3

参数解释:

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

eb5f60695849f0bb65fa43a0d825ab9a.png

表1:FC105 参数

参数转化关系: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℃。

acd5f088466b02e2008ef57709dc6088.png图4:FC105使用例子

FC 105 “SCALE”功能用于测量电压、电流、温度和电阻信号。

以下应用于温度测量:

热电阻(配置为标准范围)和热电偶,模拟量输入值是对应实际温度值的10倍。例如:整数值 600 对应于温度 60.0°C。设置参数高限 HI_LIM 和低限 LO_LIM 为 +2764.8 和 -2764.8 ,即对应于整数值除以10。气候范围的热电阻,模拟量值是温度值的 100 倍。例如:整数值 2500 对应于温度 25.0°C。设置参数高限 HI_LIM 和 低限LO_LIM 为 +276.48 和 -276.48,即对应于整数值除以100。以下应用于电流测量(举例压力传感器):

配置测量范围 4 到 20mA(0 到 5 bar)例如:整数值 27648 对应于 20mA(5 bar),整数值 0 对应于 4mA(0 bar)。因此, 参数化高限 HI_LIM 为 5.0,低限 LO_LIM 为 0.0,获得恰当的比例转化。标定值功能 FC 105 “SCALE” 转化一个整数值成一个实数值。在低限和高限之间(LO_LIM 和 HI_LIM),标定成物理单位值,结果输出到 OUT 参数。如果整数输入值不在特定的范围内 (BIPOLAR 或 UNIPOLAR),输出值 (OUT) 被输出为一个最近接范围 (LO_LIMH 或 HI_LIM))的值,并且输出一个错误。

测量范围:

BIPOLAR: 它假定整数输入值在 -27648 到 27648 之间。UNIPOLAR: 它假定整数输入值在 0 到 27648 之间。FC 105 参数:

a8f197ee532979f53b5e3890f2ffd469.png

2. 用户可以使用本例子所提供的FC106将工程量值转换为模拟量输出模板所需要的数值。

对于FC106的输入/输出参数解释如下:

64b4527cdd3676834d5e3e4d66cfe144.png

表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%。

e342736ef5d5d0c63752af3dd5a0f45b.png图5:FC106使用例子

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值