SCL语法_c语言语法表达式定义

SCL语法_c语言语法表达式定义SCL:StructuredControlLanguage,结构化控制语言。SCL是一种类似于计算机高级语言的编程方式,只是这种语言编写的程序,可以在PLC中运行。如果学过C语言或者VB语言,就会很容易上手SCL。当然没有基础依然可以从零开始学习。在PLC中有了SCL这种编程语言,就可以方便的把计算机高级语言,编写的算法移植到PLC中。西门子以下系列的PLC都支持SCL语言编程:S7-300S…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

220154048_1_20210415114928536SCL:Structured Control Language,结构化控制语言。

SCL是一种类似于计算机高级语言的编程方式,只是这种语言编写的程序,可以在PLC中运行。如果学过C语言或者VB语言,就会很容易上手SCL。当然没有基础依然可以从零开始学习。

在PLC中有了SCL这种编程语言,就可以方便的把计算机高级语言,编写的算法移植到PLC中。

西门子以下系列的PLC都支持SCL语言编程:S7-300

S7-400

S7-1200

S7-1500

WinAC

SCL能实现复杂的运算功能,特别是有大量数据要处理的时候。相对与梯形图SCL在运算、函数、过程优化方面有天然的优势。

在博途软件中已经集成SCL语言包,可以直接使用SCL进行进行编程。在传统的STEP7 中需要单独的安装 S7-SCL 软件包。

因为SCL是一种高级编程语言,所以就包含表达式、运算符、程序控制语句等语言元素。

1、表达式

SCL中有三种表达式:算术表达式

关系表达式

逻辑表达式

220154048_2_20210415114928801

一个完整的表达式是由操作数和与之搭配的操作符组成。通过表达式的特定顺序进行运算,并返回一个值。

操作数:常数、变量、函数调用(在PLC编程中可以理解为地址)。

操作符:+、-、*、/ (加减乘除),and、or、not(与或非)等。

操作符有时也叫运算符,SCL支持的运算符有算术运算符、比较运算符、逻辑运算符、赋值运算符。

算术运算符:主要是我们常用的加(+)、减(-)、乘(*)、除(/),以及数学上常用的取正、取负、求余数、整除、求余(%)。

比较运算符:用于数值的比较,主要有大于、小于、等于、不等于。

逻辑运算符:用于布尔型值的运算,常用的逻辑运算符除了与、或、非之外,还有异或。

赋值运算符:通过赋值运算,可以将一个表达式的值赋给一个变量。赋值运算符左侧为变量,右侧为表达式的值。 赋值运算的计算按照从右到左的顺序。

1.1、算术表达式

算术运算符:+、-、*、/、DIV、MOD、**。

算术表达式通常由常量、变量、函数、圆括号、运算符等组成。算术表达式也叫数学表达式,是三种表达式中最简单的,几乎可以等同于数学运算。

西门子PLC的算术表达式,支持各种数据类型。一个算术表达式的两个操作数,如果分别属于不同的数据类型,依然可以运算。运算结果的数据类型,如下图所示:

220154048_3_20210415114928911

虽然不同的数据类型可以算术运算,还是建议大家先进行数据格式转换,然后进行运算。防止出现运算后,不知道数据格式,导致数据错误。

1.2、关系表达式

关系运算符:、>=、==、<>。

关系表达式是利用关系运算符,将两个操作数或数据类型进行比较,然后得到一个布尔值(BOOL)型的逻辑结果。如果比较结果为真,则结果为1(TRUE),否则为0 (FALSE)。

所以关系表达式的值只能是逻辑值真或假(1或者0)。

关系表达式有时候也称作比较表达式。

西门子PLC的关系表达式,支持各种数据类型,结果的数据类型只能是布尔型。

220154048_4_2021041511492951

以下数据类型,只能比较相同类型的变量:TIME

日期和时间

UDT

1.3、逻辑表达式

逻辑运算符:AND(&)、OR、NOT、XOR。

西门子PLC的逻辑表达式,支持各种数据类型。但是在运算中会出现两种情况。

一是,两个操作数都是布尔(BOOL)数据类型,则逻辑运算的结果也为布尔数据类型。

另一种情况,如果两个操作数中至少有一个是位序列,则结果也为位序列。结果由最高操作数的数据类型决定。例如,当两个操作数分别是字节(Byte) 类型和字(Word)类型时,结果为字(Word)类型。

逻辑表达式中一个操作数为布尔(BOOL)类型而另一个为位序列时,必须先将 布尔(BOOL)类型的操作数显式转换为位序列类型。

220154048_5_20210415114929176

位序列:一组由0和1组成的序列。220154048_6_20210415114929286

上手PLC

抛弃学习PLC的概念,想想怎么快速「上手」用PLC

57篇原创内容

公众号

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184934.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows server 禁用智能卡服务的步骤

    windows server 禁用智能卡服务的步骤许多用户对于系统中的很多功能都不太了解,其中智能卡服务更是少有人知。智能卡服务就是对插入的智能卡进行管理和访问控制,大多数用户都无需使用此项功能。那么在Win7系统中要怎么取消智能卡服务呢?1.首先

    2022年7月1日
    32
  • group by 的用法[通俗易懂]

    group by 的用法[通俗易懂]版权声明:本文为CSDN博主「IT界一股清流」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/jerrytomc

    2022年7月1日
    24
  • 手把手教您组装一台家用NAS J3455黑群晖6.1.7搭建全过程[通俗易懂]

    手把手教您组装一台家用NAS J3455黑群晖6.1.7搭建全过程[通俗易懂]不到千元!手把手教您组装一台家用NASJ3455黑群晖6.1.7搭建全过程其实,市面上那么多NAS,特别是黑群晖,到底哪一台,哪一种配置最适合家用呢?经过俺几个月的观察和尝试,最终锁定了目标:J

    2022年8月3日
    17
  • 数据库query用法_query方法

    数据库query用法_query方法1、以前写代码,总免不了要编写登录部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现:publicUserget(Stringname,Stringpassword){Sessionsession=HibernateUtil.getSessionFactory().openSession();String…

    2022年9月30日
    3
  • 网孔型高级维修电工实训装置

    网孔型高级维修电工实训装置ZN-88CCV网孔型高级维修电工实训装置一、概述ZN-88CCV网孔型高级维修电工实训装置主要由实训桌、网孔板、实训元器件(也可自购)组成。学生根据实训线路进行元器件的合理布局,安装、接线全部由学生自行完成,接近工业现场,能完成电工基础电路,电机控制线路,照明配电的模拟操作,PLC可编程综合应用线路,电子技术应用电路的综合实训,通过一系列项目实训培养学生动手能力和实操技能。实训项目可自行确定,根据所选的项目选择相应的元器件。该装置也可作为电工考工的考核设备。二、特点1、实训采用网孔板与挂箱相结合

    2022年6月6日
    33
  • 解决BASE64Encoder报错的问题

    解决BASE64Encoder报错的问题今天在用servlet写一个文件下载的案例时,想解决文件的中文显示问题。然后在导包importsun.misc.BASE64Encoder时,发现IDEA报错了,无法识别这个类。最后发现在JDK9后,官方就已经不支持importsun.misc.BASE64Encoder了。网上说了很多,第一种是把JDK的版本降低到1.8以内。但是我觉得这不是解决的最好办法。我觉得应该去修改原有的代码。所以我采用了官方提供了新的jar包importjava.util.Base64。下面这个java类的本意

    2022年6月15日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号