当前位置:首页 > 维修 > 正文

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制

来源:网络  发布者:电工基础  发布时间:2026-03-10 12:16
今天主要跟大家分享一个关于西门子S7-300、400PLC模拟量输入输出的量程转换控制,主要有以下内容:一、模拟量输入输出量程转换的概念二、S7-300/400 PLC模拟量输入输出模板1、需要使用的模板2、涉及的信号类型三、
今天主要跟大家分享一个关于西门子S7-300、400PLC模拟量输入输出的量程转换控制,主要有以下内容:


一、模拟量输入输出量程转换的概念

二、S7-300/400 PLC模拟量输入输出模板

1、需要使用的模板

2、涉及的信号类型

三、STEP 7 中模拟量输入输出的编程

1、FC105、FC106 在哪里

2、FC105、FC106 功能描述

3、FC105、FC106 参数定义

4、FC105、FC106例子程序


一、模拟量输入、输出量程转换的概念

实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。传感器将输出标准电压、电流、温度、或电阻信号供 PLC 采集,PLC 的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。

在 PLC 程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。这样就需要在程序中调用功能块完成量程转换。

如一个压力调节回路中,压力变送器输出 4-20mA DC 信号到 SM331 模拟量输入模板,SM331 模板将该信号转换成0-27648 的整形数,然后在程序中要调用 FC105 将该值转换成0-10.0(MPa)的工程量(实数),经 PID 运算后得到的结果仍为实数,要用FC106 转换为对应阀门开度0-100%的整形数0-27648 后,经 SM332 模拟量输出模板输出 4-20mA DC 信号到调节阀的执行机构。


二、S7-300、400 PLC 模拟量输入、输出模板


1、需要使用的模板

西门子 S7-300、400 PLC 进行模拟量输入、输出需要使用的模板。

S7-300 系列 PLC:SM331 系列模拟量输入模板;SM332 系列模拟量输出模板;SM334、335系列模拟量输入、输出模板。

S7-400 系列 PLC:SM431 系列模拟量输入模板;SM432 模拟量输出模板。

2、涉及的信号类型:电压,电流,温度,电阻

三、STEP 7 中模拟量输入、输出的编程

1、FC105、FC106 在哪里

在编程界面下,在 Program elements 中的 Libraries 下的 Standard Library 下的 TI-S7 Converting Blocks 中就可以找到,见下图:


【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制


注意:请不要使用 S5-S7 Converting Blocks 下的 FC105, FC106,该路径下的功能是用于S5输入输出模板的,在 S7 输入输出模板上无法使用。

2、FC105、FC106功能描述

在编程界面下选中该功能块,按一下计算机键盘上的 F1 功能键,即可打开关于该功能块的在线帮助,包括该功能块的功能,管脚参数定义、例子程序等。建议用户使用 STEP 7 在线帮助,可以提供全面的编程帮助。


FC105 功能描述

SCALE(FC105)功能将一个整形数 INTEGER(IN)转换成上限、下限之间的实际的工程值(LO_LIM and HI_LIM),结果写到 OUT。公式如下:

OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM,常数 K1 和 K2 的值取决于输入值(IN)是双极性 BIPOLAR 还是单极性 UNIPOLAR。


双极性 BIPOLAR:即输入的整形数为 –27648 到 27648,此时 K1 =–27648.0, K2 =+27648.0

单极性 UNIPOLAR:即输入的整形数为0到 27648,此时 K1 = 0.0, K2=+27648.0


如果输入的整形数大于 K2,输出(OUT)限位到 HI_LIM, 并返回错误代码。如果输入的整形数小于K1,输出限位到 LO_LIM,并返回错误代码。反向定标的实现是通过定义 LO_LIM > HI_LIM 来实现的。反向定标后的输出值随着输入值的增大而减小。


FC106 功能描述

UNSCALE(FC106)功能将一个实数 REAL (IN)转换成上限、下限之间的实际的工程值(LO_LIM and HI_LIM),数据类型为整形数。结果写到 OUT。公式如下:

OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1

常数 K1 和 K2 的值取决于输入值(IN)是双极性 BIPOLAR 还是单极性 UNIPOLAR。

双极性 BIPOLAR:即输出的整形数为 –27648 到 27648,此时 K1 =–27648.0, K2 =+27648.0

单极性 UNIPOLAR:即输出的整形数为0到 27648,此时 K1 = 0.0, K2=+27648.0

如果输入值在下限 LO_LIM 和上限 HI_LIM 的范围以外,输出(OUT)限位到与其相近的上限或下限值(视其单极性 UNIPOLAR 或双极性 BIPOLAR 而定),并返回错误代码。

3、FC105、FC106 参数定义


6666666666666666

FC105 的参数定义

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制


错误信息:

如输入的整形数大于 K2,则输出(OUT)限位到 HI_LIM,并返回错误值。如输入的整形数小于K1,输出限位到 LO_LIM,并返回错误值。ENO 端的信号状态置为0且返回值RET_VAL 为W#16#0008。

FC106 的参数定义

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制


错误信息:

如果输入值在下限 LO_LIM 和上限 HI_LIM 的范围以外,输出(OUT)限位到与其相近的上限或下限值(视其单极性 UNIPOLAR 或双极性 BIPOLAR 而定),并返回错误代码。ENO 端的信号状态置为0且返回值 RET_VAL 为 W#16#0008。

4、FC105和FC106例子程序

FC105例子程序

如输入 I0.0 为 1,SCALE 功能被执行。下面的例子中,整形数 22 将被转换成0.0到 100.0的实数并写到 OUT。输入是双极性 BIPOLAR,用 I2.0来设置。


【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制


FC106例子程序

如输入 I0.0 为 1,UNSCALE 功能被执行。下面的例子中,实数 50.03978588 将被转换成0.0到100.0的工程量,再转换成整形数并写到 OUT。输入是双极性 BIPOLAR,用I2.0来设置。


【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制

【分享】S7-300/400 PLC 模拟量输入输出的量程转换控制


注意:通常在一个项目都有不只一个模拟量需要转换,FC105 和 FC106 在程序中都可多次调用,调用的方法同上述例子程序.

相关热词:#电工论坛