月泽
时间嘛!就象乳沟,挤一挤总归还是有的!
级别: 工控侠客
精华主题: 1 篇
发帖数量: 1285 个
工控威望: 2921 点
下载积分: 4511 分
在线时间: 642(小时)
注册时间: 2009-03-28
最后登录: 2024-06-12
查看月泽的 主题 / 回贴
楼主  发表于: 2011-04-06 21:40
OUT 是怎么算出来=50.03978588

I2.0=0   和   I2.0=1   有什么区别?   =1  是表示BIPOLAR  双极性吗?  =0 是表示UNIPOLAR 单极性吗?


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


这是计算公式 我怎么就算不出 OUT=50.03978588


公式有问题吗?



揭开神秘的工控面纱
QQ:2631001081
Emal:strong20671713@163.com
ak47m16u571
苦海无边,柴米似鞭。欢乐无限,烦扰靠边。得逍遥处且逍遥
级别: 家园常客
精华主题: 0
发帖数量: 669 个
工控威望: 590 点
下载积分: 1580 分
在线时间: 630(小时)
注册时间: 2008-01-01
最后登录: 2024-11-11
查看ak47m16u571的 主题 / 回贴
1楼  发表于: 2011-04-06 22:14
FC105  
先贴全了,再解释



描述

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

OUT = [ ((FLOAT (IN) ?K1)/(K2朘1)) * (HI_LIM朙O_LIM)] + LO_LIM

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

?BIPOLAR:假定输入整型值介于 ?7648与27648之间,因此K1 = ?7648.0,K2 = +27648.0

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

如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。


通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。


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。

实例

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

如果该功能的执行没有错误,ENO和Q0.0的信号状态将设置为1,RET_VAL等于W#16#0000。
ak47m16u571
苦海无边,柴米似鞭。欢乐无限,烦扰靠边。得逍遥处且逍遥
级别: 家园常客
精华主题: 0
发帖数量: 669 个
工控威望: 590 点
下载积分: 1580 分
在线时间: 630(小时)
注册时间: 2008-01-01
最后登录: 2024-11-11
查看ak47m16u571的 主题 / 回贴
2楼  发表于: 2011-04-06 22:20
手册里面给的BIPOLAR=1,所以就是双极性,范围-27648与27648之间,因此K1 = -27648.0,K2 = +27648.0

IN=22,

工程量(就假设是温度):
HI_LIM   (最高)     100
LO_LIM  (最低)     0

所以:
OUT = [ ((FLOAT (IN) -K1)/(K2-1)) * (HI_LIM-O_LIM)] + LO_LIM
代入
OUT = [ ((FLOAT (22) -(-27648.0))/(27648.0-(-27648.0))) * (100-0)] + 0=50.03


已经狠详细啦!
能看懂吧?
呼呼。。。喘口气
本帖最近评分记录:
  • 下载积分:+5(月泽) 优秀文章
    ak47m16u571
    苦海无边,柴米似鞭。欢乐无限,烦扰靠边。得逍遥处且逍遥
    级别: 家园常客
    精华主题: 0
    发帖数量: 669 个
    工控威望: 590 点
    下载积分: 1580 分
    在线时间: 630(小时)
    注册时间: 2008-01-01
    最后登录: 2024-11-11
    查看ak47m16u571的 主题 / 回贴
    3楼  发表于: 2011-04-06 22:36
    不过有一点要注意
    当你的IN为0时,你的实际温度OUT是50度。。。
    IN=27648,OUT100=度。
    sy2kj
    www.sy2kj.com
    级别: 探索解密
    精华主题: 0
    发帖数量: 47 个
    工控威望: 149 点
    下载积分: 710 分
    在线时间: 41(小时)
    注册时间: 2010-12-14
    最后登录: 2013-11-29
    查看sy2kj的 主题 / 回贴
    4楼  发表于: 2011-04-06 22:36
    哦,sfc105就是这个意思吗? 就是比例转换数据
    xiaoqizi
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 446 个
    工控威望: 1316 点
    下载积分: 2402 分
    在线时间: 714(小时)
    注册时间: 2009-07-06
    最后登录: 2024-11-12
    查看xiaoqizi的 主题 / 回贴
    5楼  发表于: 2011-04-06 22:59
    对就是,就是普通的数据转换了:  Y=(X-输入下限)/(输入上限-输入下限)*(输出上限-输出下限)+输出下限
    你的问题估计就在这个输入上下限的的数值确定上了! 另外那个K2-1是个误导,是K2-K1
    本帖最近评分记录:
  • 下载积分:+1(月泽) 热心助人
    月泽
    时间嘛!就象乳沟,挤一挤总归还是有的!
    级别: 工控侠客
    精华主题: 1 篇
    发帖数量: 1285 个
    工控威望: 2921 点
    下载积分: 4511 分
    在线时间: 642(小时)
    注册时间: 2009-03-28
    最后登录: 2024-06-12
    查看月泽的 主题 / 回贴
    6楼  发表于: 2011-04-08 07:44
    那怎么在 HI_LIM输入 1.0   显示的是 1.000000e+002呢?

    LI_LIM输入0.0 显示的就是 0.000000e+000  这是什么显示?


    还有别人 的IN 输入  信号 是  PIW200是啥?  
    揭开神秘的工控面纱
    QQ:2631001081
    Emal:strong20671713@163.com
    cvlsam
    富士低压,POD(觸摸屏),PLC专卖
    级别: VIP会员

    精华主题: 3 篇
    发帖数量: 6769 个
    工控威望: 38370 点
    下载积分: 2965 分
    在线时间: 9505(小时)
    注册时间: 2006-09-13
    最后登录: 2024-11-18
    查看cvlsam的 主题 / 回贴
    7楼  发表于: 2011-04-08 09:00
    引用
    引用第6楼月泽于2011-04-08 07:44发表的  :
    那怎么在 HI_LIM输入 1.0   显示的是 1.000000e+002呢?

    LI_LIM输入0.0 显示的就是 0.000000e+000  这是什么显示?


    .......


    输入1.0怎么可能是 1.000000e+002? 1.000000e+002表示100.0

    那叫做科学计数法,初中老师应该教过了。

    PIW    P外部   I  输入  W:长度为Word

    合起来就是外部输入,地址为200,数据长度为Word。

    去翻翻Step7编程手册,用西门子不看手册还是早点洗洗睡了吧。