全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 工业控制 >

STEP7V5.x中模拟量输入/输出的编程实现

时间:2023-02-12 11:29

人气:

作者:admin

标签: Bipolar  LENO  RET  转换器 

导读:在编程界面下,在 “程序元素”中的 “库—— Standard Library —— TI-S7 Converting Blocks”中可以找到...

)FC105/FC106在哪里?

编程界面下,在“程序元素”中的“库——> Standard Library ——> TI-S7 Converting Blocks”中可以找到,见图3.1:

9b96a536-aa7b-11ed-bfe3-dac502259ad0.jpg

图3.1

9bb44e38-aa7b-11ed-bfe3-dac502259ad0.jpg

图3.2

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

2) FC105功能描述

SCALE(FC105)功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:

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

常数K1和K2根据输入值是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可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。

3)FC105的参数定义

参数 描述 数据类型 存储区 描述
EN 输入 BOOL I、Q、M、D、L 使能输入端,信号状态为1时激活该功能。
ENO 输出 BOOL I、Q、M、D、L 如果该功能的执行无错误,该使能输出端信号状态为1。
IN 输入 INT I、Q、M、D、L、P、常数 欲转换为以工程单位表示的实型值的输入值。
HI_LIM 输入 REAL I、Q、M、D、L、P、常数 以工程单位表示的上限值。
LO_LIM 输入 REAL I、Q、M、D、L、P、常数 以工程单位表示的下限值。
BIPOLAR 输入 BOOL I、Q、M、D、L 信号状态为1表示输入值为双极性。信号状态0表示输入值为单极。
OUT 输出 REAL I、Q、M、D、L、P 转换的结果。
RET_VAL 输出 WORD I、Q、M、D、L、P 如果该指令的执行没有错误,将返回值W#16#0000。对于W#16#0000以外的其它值,参见"错误信息"。

故障信息:

如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。

4)FC105例子程序

如果输入I0.0的信号状态为1 (激活),则执行SCALE功能。在本例中,整型值22将转换为介于0.0和100.0之间的实型值,并写入OUT。如I2.0的信号状态所示,该输入值为BIPOLAR。

如果该功能的执行没有错误,ENO和Q0.0的信号状态将设置为1,RET_VAL等于W#16#0000。

9bce2902-aa7b-11ed-bfe3-dac502259ad0.png

执行前:

IN ----------------------> MW10=22

HI_LIM ---------------> MD20=100.0

LO_LIM --------------> MD30=0.0

OUT -------------------> MD40=0.0

BIPOLAR ------------> I2.0=TRUE

执行后:

OUT ------------------> MD40=50.03978588

5) FC106功能描述

UNSCALE(FC106)功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。UNSCALE功能使用以下等式:

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

并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。

●BIPOLAR:假定输出整型值介于-27648和27648之间,因此,K1 = -27648.0,K2 = +27648.0

●UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0

如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。

6)FC106的参数定义

参数 描述 数据类型 存储区 描述
EN 输入 BOOL I、Q、M、D、L 使能输入端,信号状态为1时激活该功能。
ENO 输出 BOOL I、Q、M、D、L 如果该功能的执行无错误,该使能输出端信号状态为1。
IN 输入 REAL I、Q、M、D、L、P、常数 欲转换为整型值的输入值。
HI_LIM 输入 REAL I、Q、M、D、L、P、常数 以工程单位表示的上限值。
LO_LIM 输入 REAL I、Q、M、D、L、P、常数 以工程单位表示的下限值。
BIPOLAR 输入 BOOL I、Q、M、D、L 信号状态为1表示输入值为双极性。信号状态0表示输入值为单极。
OUT 输出 INT I、Q、M、D、L、P 转换结果。
RET_VAL 输出 WORD I、Q、M、D、L、P 如果该指令的执行没有错误,将返回值W#16#0000。对于W#16#0000以外的其它值,参见"错误信息"。

故障信息:

如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。

7)FC106例子程序

如果输入I0.0的信号状态为1 (激活),则执行UNSCALE功能。在本例中,标定于0.0和100.0之间的实型值50.03978588,将转换为一个整型值,并写入OUT。如I2.0的信号状态所示,该输入值为BIPOLAR。

如果该功能的执行没有错误,ENO和Q0.0的信号状态将设置为1,RET_VAL等于W#16#0000。

9be8e1ca-aa7b-11ed-bfe3-dac502259ad0.png

执行前:

IN ----------------------> MD10=50.03978588

HI_LIM ---------------> MD20=100.0

LO_LIM --------------> MD30=0.0

OUT -------------------> MW40=0

BIPOLAR ------------> I2.0=TRUE

执行后:

OUT ------------------> MW40=22






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信