- {{item.name}}
如何转换S7-1200 CPU模拟量
- 1
- 4795
- 18829
问题:在S7-1200 CPU中,如何实现模拟量数值与工程量数值之间的转换?
回答:本文档提供了程序库例程FC105,FC106,用户可以使用它们将模拟量输入/输出的整数数值与工程量单位之间进行转换。用户需要将此例程安装到程序库中。
步骤1:解压缩“analog_convert.rar”(201111817528726.rar ( 307 KB ) )文件到一个文件夹。
步骤2:打开STEP7 Basic中的“Libraries Tab”, 点击“Open global library”图标
图1
步骤3:选择“analog_convert”库所解压的文件夹。
图2
步骤4:在添加程序库后,FC105(SCALE),FC106(UNSCALE)即可以被添加到用户程序中。
图3
参数解释:
1. 用户可以使用本例子所提供的FC105将模拟量输入模板的整数数值转换为工程量数值。对于FC105的输入/输出参数解释如下:
参数 | 类型 | 数据类型 | 存储区 | 描述 |
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 参数
参数转化关系:
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℃。
图4:FC105 使用例子
2. 用户可以使用本例子所提供的FC106将工程量值转换为模拟量输出模板所需要的数值。
对于FC106的输入/输出参数解释如下:
参数 | 类型 | 数据类型 | 存储区 | 描述 |
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%。
图5:FC106 使用例子
注意:
1.本例程中的程序使用类似于STEP7 中提供的FC105/106,用户可以参考如下链接的FAQ:
1765297
2.用户也可使用如下链接的FAQ完成对S7-1200模拟量的转化:
39334505
关键词
S7-1200,STEP7 Basic,模拟量转换
附件下载:
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- G120 CU240B/E-2中如何转化报警和故障的类型
- S7-200 SMART模拟量量程转换
- 如何将两线制测量传感器连接到模拟量模块6ES7 331-1KF01-0AB0,紧凑型 CPU 或者 C7 设备?
- 在 STEP 7 (TIA Portal) 中,如何对S7-1200/S7-1500 进行数据类型转换?
- 如何把从S7-1200外部存储卡中下载到的数据记录(".csv"格式) 转换成简单可读的 Excel 文件?
- STEP 7 (TIA Portal) 中使用S7-1200/1500控制器,怎样将整型转化为实数或将实数转化为整型用于模拟量输入和输出?
- S7-200 CPU模拟量比例换算
- 对于S7-1200的ModbusTCP功能块库软件包,其版本与S7-1200 CPU的固件版本兼容性如何?
- 如何实现两个S7-1200 CPU之间的以太网通信
- 如何对 S7-1500 CPU 和 S7-1200 CPU 之间的 Modbus/TCP 通信进行编程和参数化 ?
{{item.nickName}}