西门子S7-300里32浮点数怎么转换成整数输出到模拟量输出模块通道里.例如:我在WINCC屏里写了个500转速的32位浮点数,我怎么把这个500转速在300程序里转换成M332输出模块输出到变频器模拟输入端子能够接受的电压型号,模块电压-10到+10.求具体解法!
问题补充:
变频器是0到34HZ
最佳答案
1.32位浮点数应写为500.0,将32浮点数怎么转换成整数,可以使用用FC106功能块做反线性化处理。
FC106 UNSCALE功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。
UNSCALE功能使用以下等式:OUT = [ ((IN-O_LIM)/(HI_LIM-O_LIM)) * (K2-1) ] + K1,并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。BIPOLAR:假定输出整型值介于 ?7648和27648之间,因此,K1 = -7648.0,K2 = +27648.0UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。
2.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)的指定范围的下限或上限较近的一方,并返回一个错误。
详细可参考:FC105.FC106使用与实例
http://wenku.baidu.com/link?url=VcxryW2aq3eWzgrDQygy99dxHTU5-J374urUz4lHn51z44KDuW6yCNmXyi7mSqix3-dqJ8GyGlUu4i_HdxGLzxNw4CKCl3HdcJ6DGs9dBN7
3.程序见上传图片
图片说明:
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc237140.html