您的位置:控制工程论坛网论坛 » 西门子社区 » 对缩放指令进行咨询

sweect

sweect   |   当前状态:在线

总积分:5941  2024年可用积分:0

注册时间: 2007-11-07

最后登录时间: 2023-08-21

空间 发短消息加为好友

对缩放指令进行咨询

sweect  发表于 2016/7/5 10:04:00      1736 查看 5 回复  [上一主题]  [下一主题]

手机阅读

缩放指令是的用法是传感器的上限和下限与5530和27648,成线性关系一一对应上的吗?那如果是0-20mA的直接用缩放指令0——27648和传感器量程对应上可以吗?

1楼 1 0 回复
  • martion

    martion   |   当前状态:在线

    总积分:5074  2024年可用积分:0

    注册时间: 2013-07-25

    最后登录时间: 2019-12-19

    空间 发短消息加为好友

    martion   发表于 2016/7/5 16:04:53

    SCALE缩放指令1200是没有的,300400才有。如果现场传感器是4-20ma,模拟模板是0-20ma,那么SCALE指令里K1和K2就应该是5530.0和27648.0。但因为SCALE指令里K1和K2固定为两种情况,BIPOLAR为0,K1=0.0,K2=27648.0这是单极性;BIPOLAR为1,K1=-27648.0,K2=27648.0这是双极性。因为K1\K2不在接口参数里,所以K1=5530和K2=27648.0无法实现,你最好自己写一个块更灵活点。

    CASE #index OF

        1:

            #K1 := 0;

            #K2 := 27648;

        2:

            #K1 := -27648;

            #K2 := 27648;

        3:

            #K1 := 5530;

            #K2 := 27648;

        ELSE

            ;

    END_CASE;

    IF #IN < #K1

    THEN

        #Temp1 := #K1;

        #overflow := 1;

    ELSIF #IN > #K2

    THEN

        #Temp1 := #K2;

        #overflow := 1;

    ELSE

        #Temp1 := #IN;

        #overflow := 0;

    END_IF;

    #Value := (#HI_LIM - #LO_LIM) * ((#Temp1 - #K1) / (#K2 - #K1)) + #LO_LIM;


     

    2楼 回复本楼

    引用 martion 2016/7/5 16:04:53 发表于2楼的内容

  • yujie0612

    yujie0612   |   当前状态:在线

    总积分:3617  2024年可用积分:0

    注册时间: 2015-01-29

    最后登录时间: 2023-08-15

    空间 发短消息加为好友

    yujie0612   发表于 2016/7/5 17:49:41

     用NORM_X+SCALE_X就可以啊,没那么麻烦


    NORM_X将PIW,以及0-27648(或者5530-27648)转为0.0-1.0,然后SCALE_X将0.0-1.0转化为工程量,比如0-100℃


    输出也一样


    NORM_X将实际工程量,以及工程量范围,转为0.0-1.0,然后SCALE_X将0.0-1.0转化为0-27648中间的一个值作为PQW

     

     

    3楼 回复本楼

    引用 yujie0612 2016/7/5 17:49:41 发表于3楼的内容

  • atmupkeep

    atmupkeep   |   当前状态:在线

    总积分:5759  2024年可用积分:0

    注册时间: 2011-05-08

    最后登录时间: 2023-08-15

    空间 发短消息加为好友

    atmupkeep   发表于 2016/7/5 21:24:50

    楼上说的没错。一个缩放;一个标准化。

    动手试一下就知道了。

    同时,要理解西门子编程的规范和理念。推荐尽量用整数,少用浮点。浮点就是用0-1.00范围(因为实际是科学记数法,有效位数是固定的。转成0-100.0没用);位数标定由HIM去做(否则都是浪费时间)。

    4楼 回复本楼

    引用 atmupkeep 2016/7/5 21:24:50 发表于4楼的内容

  • ytzidonghua

    ytzidonghua   |   当前状态:在线

    总积分:11257  2024年可用积分:0

    注册时间: 2006-09-18

    最后登录时间: 2023-03-26

    空间 发短消息加为好友

    ytzidonghua   发表于 2016/7/6 8:38:53

    就是个乘除运算  

    5楼 回复本楼

    引用 ytzidonghua 2016/7/6 8:38:53 发表于5楼的内容

  • zhanghe

    zhanghe   |   当前状态:在线

    总积分:3518  2024年可用积分:0

    注册时间: 2010-03-22

    最后登录时间: 2023-08-14

    空间 发短消息加为好友

    zhanghe   发表于 2016/7/7 9:54:52

    跟着学习一下

    6楼 回复本楼

    引用 zhanghe 2016/7/7 9:54:52 发表于6楼的内容

总共 , 当前 /