CIMC中国智能制造挑战赛BBS

 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4597|回复: 7

【转载:SCL扩展】扩展资料(1)基本运算表达式,运算符,

[复制链接]
  • TA的每日心情
    奋斗
    2021-4-29 09:49
  • 签到天数: 46 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2020-2-4 17:38:40 | 显示全部楼层 |阅读模式 来自 中国河北张家口
    本帖最后由 安宏宁 于 2020-7-20 23:33 编辑

    版权声明:本文为CSDN博主「安宏宁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/anhongning123/article/details/105696632
    原文稍微全一点

    使用平台是 TIA Portal 15.1 ,文章内容都经过项目测试,不喜勿喷。
    注意:
    1.部分数据类型在1200中不被支持或者有限支持,具体可以查看博图的帮助文档。
    2.本教程在举例的时候也会对部分函数进行标记。
    3.本教程为扩展资料,并不和竞赛资料相呼应,这点注意!


    算数运算:
          算术表达式既可以是一个数字值,也可以是由带有算术运算符的两个值或表达式组合而成。
    基本的数据类型转换,
    基本规律:基本依据隐式转换规则,即多类型的运算结果总是数据类型级别较高或者范围较大的数据类型。
    具体区分如下:
          算术运算符可以处理当前 PLC 所支持的各种数据类型。操作中有两个操作数,可根据以下条件来确定结果的数据类型:如果这 2 个操作数均为有符号的整数,但长度不同,那么结果将采用长度较长的那个整数数据类型(例如,INT + DINT = DINT)。
    1.如果这 2 个操作数均为无符号整数,但长度不同,那么结果将采用长度较长的那个整数数据类型(例如,USINT + UDINT = UDINT)。
    2.如果一个操作数为有符号整数,另一个为无符号整数,那么结果将采用另一个长度较大的有符号数据类型(其包含此无符号整数)(例如,SINT + USINT = INT)
    3.只有在未设置 IEC 检查时,才能执行具有此类操作数的运算;
    4.如果一个操作数为整数,另一个为浮点数,那么结果将采用浮点数的数据类型(例如,INT + REAL = REAL);
    5.如果 2 个操作数均为浮点数,但长度不同,结果将采用长度较长的那个浮点数的数据类型(例如,REAL + LREAL = LREAL);
    6.对于操作数为“时间”和“日期和时间”数据类型组,运算结果的数据类型请参见下面的表格;
    7.设置了 IEC 检查时,不能使用数据类型组“时间”和“日期和时间”的数据类型。
    [/url]

    算术表达式的数据类型


    [td]
    运算
    运算符
    第一个操作数
    第二个操作数
    结果
    幂运算
    **
    整数/浮点数
    整数/浮点数
    浮点数
    一元加
    +
    整数/浮点数
    TIME, LTIME
    -
    整数/浮点数
    TIME, LTIME
    一元减
    -
    整数/浮点数
    TIME, LTIME
    -
    整数/浮点数
    TIME, LTIME
    乘法
    *
    整数/浮点数
    整数/浮点数
    整数/浮点数
    TIME, LTIME
    整数
    TIME, LTIME
    除法
    /
    整数/浮点数
    整数/浮点数(不等于 0)
    整数/浮点数
    TIME, LTIME
    整数
    TIME, LTIME
    模运算
    MOD
    整数
    整数
    整数
    加法
    +
    整数/浮点数
    整数/浮点数
    整数/浮点数
    TIME
    TIME
    TIME
    TIME
    DINT
    TIME
    LTIME
    TIME, LTIME
    LTIME
    LTIME
    LINT
    LTIME
    TOD
    TIME
    TOD
    TOD
    DINT
    TOD
    LTOD
    TIME, LTIME
    LTOD
    LTOD
    LINT
    LTOD
    DATE
    LTOD
    DTL
    DATE
    TOD
    • S7-300/400:DT
    • S7-1200/1500:DTL
    DT
    TIME
    DT
    LDT
    TIME, LTIME
    LDT
    DTL
    TIME, LTIME
    DTL
    减法
    -
    整数/浮点数
    整数/浮点数
    整数/浮点数
    TIME
    TIME
    TIME
    TIME
    DINT
    TIME
    LTIME 1)
    TIME、LTIME
    LTIME
    LTIME
    LINT
    LTIME
    TOD
    TIME
    TOD
    TOD
    DINT
    TOD
    TOD
    TOD
    TIME
    LTOD
    TIME、LTIME
    LTOD
    LTOD
    LINT
    LTOD
    LTOD
    LTOD
    LTIME
    DATE
    DATE
    • S7-300/400/1200:TIME
    • S7-1500:LTIME
    DT
    TIME
    DT
    DT
    DT
    TIME
    LDT
    TIME, LTIME
    LDT
    DTL
    TIME, LTIME
    DTL
    DTL
    DTL
    • S7-1200:TIME
    • S7-1500:LTIME










    逻辑表达式的数据类型

    运算
    运算符
    第一个操作数
    第二个操作数
    结果
    取反(求反码)
    NOT
    BOOL
    -
    BOOL
    位字符串
    -
    位字符串
    “与”运算
    AND 或 &
    BOOL
    BOOL
    BOOL
    位字符串
    位字符串
    位字符串
    “或”运算
    OR
    BOOL
    BOOL
    BOOL
    位字符串
    位字符串
    位字符串
    “异或”运算
    XOR
    BOOL
    BOOL
    BOOL
    位字符串
    位字符串
    位字符串






    基本运算符的优先级


    运算符
    运算
    优先级
    算术表达式
    +
    一元加
    2
    -
    一元减
    2
    幂运算
    3
    *
    乘法
    4
    /
    除法
    4
    模运算
    4
    +
    加法
    5
    -
    减法
    5
    +=, -=, *=, /=
    组合赋值运算
    11
    关系表达式
    <
    小于
    6
    >
    大于
    6
    小于等于
    6
    大于等于
    6
    =
    等于
    7
    不等于
    7
    逻辑表达式
    取反
    3
    AND&
    “与”运算
    8
    “异或”运算
    9
    “或”运算
    10
    引用表达式
    引用
    ^
    取消引用
    1
    赋值尝试
    11
    其它运算
    括号
    1
    赋值
    11









    关系表达式的数据类型





    [td]
    运算
    运算符
    第一个操作数
    第二个操作数
    结果
    比较:等于、不等于
    =、<>
    整数/浮点数
    整数/浮点数
    BOOL
    位字符串
    位字符串
    BOOL
    字符串
    字符串
    BOOL
    TIME、LTIME
    TIME、LTIME
    BOOL
    日期和时间
    日期和时间
    BOOL
    VARIANT/ANY
    VARIANT/ANY
    BOOL
    任何数据类型(但必须与 VARIANT 的变量数据类型相对应)
    VARIANT/ANY
    BOOL
    VARIANT/ANY
    任何数据类型
    BOOL
    PLC 数据类型
    PLC 数据类型
    BOOL
    ARRAY of <数据类型>,ARRAY 限值固定/可变
    ARRAY of <数据类型>,ARRAY 限值固定/可变
    BOOL
    STRUCT
    STRUCT
    BOOL
    比较:小于、小于等于、大于、大于等于
    <、<=、>、>=
    整数/浮点数
    整数/浮点数
    BOOL
    位字符串
    (仅 S7-1200/1500)
    位字符串
    (仅 S7-1200/1500)
    BOOL
    字符串
    字符串
    BOOL
    TIME、LTIME
    TIME、LTIME
    BOOL
    日期和时间
    日期和时间
    BOOL

    *使用默认数据类型的 SCL 指令
    用来执行块编程的 SCL 指令使用特定的数据类型来计算函数值。某些 SCL 指令仅支持使用特定的数据类型。无法更改这些指令的数据类型。但是,大部分  SCL 指令都支持使用多种数据类型,此等指令区分为以下两种类型:
    • 函数值数据类型由输入参数数据类型确定的指令。大部分指令都属于这种情况。
    • 使用默认数据类型的指令。下表列出的指令便属于此类型。

    指令
    默认数据类型
    CEIL
    DINT
    DECO
    DWORD
    FLOOR
    DINT
    NORM_X
    REAL
    PEEK
    BYTE
    SCALE_X
    INT
    TRUNC
    DINT
    CONCAT
    STRING
    T_DIFF
    TIME

    回复
  • TA的每日心情
    奋斗
    2021-4-29 09:49
  • 签到天数: 46 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2020-4-23 16:53:43 | 显示全部楼层 来自 中国河北张家口
    john 发表于 2020-4-23 10:12
    大佬,链接404了。

    我把原文删了,挪到CSDN了
    回复
    1框架
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    QQ|小黑屋|Archiver|China Intelligent Manufacturing Challenge |京公网安备11010502043466号

    GMT+8, 2024-11-22 22:51 , Processed in 1.552108 second(s), 23 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表