直播课堂
HOME
直播课堂
正文内容
plc编程语法 西门子PLC编程:如何学习SCL语言的基本语法规则
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子PLC编程:如何学习SCL语言的基本语法规则

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

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

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

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

S7-300S7-400S7-1200S7-1500WinAC

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

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

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

1、表达式

SCL中有三种表达式:

算术表达式关系表达式逻辑表达式

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

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

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

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

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

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

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

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

1.1、算术表达式

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

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

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

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

1.2、关系表达式

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

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

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

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

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

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

TIME日期和时间UDT

1.3、逻辑表达式

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

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

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

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

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

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

PLC编程中的循环语法使用

所有计算机编程语言,都有循环的功能。

PLC也是。

所以当然有循环功能。

不管什么CPU,什么编程语言,都有循环语法,可以用于实现循环。当然,很多时候,语言对循环支持的并不够理想。通常还要有指针,间接寻址等配合。所以在PLC编程中,属于难度比较高的题目。

我知道,有一些人,对掌握循环编程语法很在意,也有一些人,对自己搞不好循环而很头疼。

今天分析一下这个问题。

首先,我们看循环编程方法的意义。几个方面:

1, 提高CPU的工作效率;

2, 降低程序代码数量,减少内存使用。

3, 降低编程时的工作量。

首先看1,你只要用类似FOR…NEXT的循环语句,对CPU的工作量其实是没有多少改善的。循环100次,和写100行,并没有区别。真的循环周期数太大的时候,一样要当心OB1循环超时。

关于2,减少代码数量需要有足够多的循环周期。如果只有5个对象或者更少,为了做循环,还要精心准备输入和输出接口,最终反而程序代码量多了。

关于3,编程的工作量,同时还有难度。都是要综合考虑的。如果编程工具可以支持与办公软件的数据对拷,先在办公软件中,通过数据整理技巧,把程序代码整理好,PLC环境中拿来直接使用,工作量有时候说不定更少,更快捷。

工业自动化系统中,通常设备数据量都很小。比如一个中型的控制系统,100台电机设备算比较多了。而值得通过循环来编程的,通常还是同一个类型的序列设备。那超过5台都很少见。

而如果要设计为循环编程方法,还需要在I/O排布开始就要充分考虑。比方说输入信号按顺序X.0, X.1, X.2,X.3,X.4,输出信号也要同样的按顺序排起来。

这就需要提前跟电气图纸设计者沟通好,也要跟盘柜工人配合。这些是不符合标准化模块化设计原则的。

尤其是,如果运行中,突然中间的某一个模块的点坏掉了,要把其中一个点挪到其他的地址,还做不到了。这比较麻烦。

回顾我自己十几年做过的PLC程序,真正用过循环编程的场合,少之又少。印象中比较深的,是处理仓库类数据,用到了循环。但因为循环量太大,尽管开始是用循环语句实现的,但后来发现导致CPU的循环周期过长,而因为也没有什么实时性要求,最后还是改为异步循环,借由OB1的循环周期来实现了。

所以,关于循环语法,我的原则是,少用循环。只要能不用循环,就尽量别用循环。

相关问答

plc编程语法错误怎么解决?

要解决PLC编程语法错误,可以采取以下步骤:1.仔细检查代码:首先,需要仔细检查代码中的每一行,确保没有拼写错误、语法错误或其他常见的错误。2.使用调试工...

西门子PLC功能块编程怎么用?

西门子PLC(可编程逻辑控制器)的功能块编程是PLC编程的一种方法,通过预定义好的功能块,来完成复杂的控制任务。以下是使用西门子PLC进行功能块编程的一般步骤...

plc中st是什么意思?

plc中st意思是指StructuredText,是一种基于结构化编程的PLC编程语言。它的语法类似于Pascal语言,具有易读性和易维护性的特点,适用于复杂的控制算法和数据处...

plc有几种编程语言?

PLC(可编程逻辑控制器)有以下几种编程语言:1.LadderDiagram(梯形图):梯形图是PLC编程中最常用的一种编程语言,它模拟了电气控制电路的逻辑关系,具有易...P...

s7-300plc语句表例子?

您好,以下是S7-300PLC语句表的示例:指令|语法|说明---|---|---LD|LDI0.0|加载输入I0.0的状态AND|ANDI0.0,I0.1...

plc编程中hl什么意思?

1.HL在PLC编程中代表"HighLevel",即高级语言。2.在PLC编程中,HL通常指的是使用类似于C语言或者其他高级编程语言的语法和结构进行编程。相比于低级语言(如....

为什么用LD而不是ANDplc小白求解?

1使用LD而不是ANDplc是因为各种控制器编程语言都有自己的特点,适用范围和使用环境。并不是所有情况下都适合使用ANDplc,而LD则在工业控制领域中有广泛的应用...

三菱plc的ei指令详解?

三菱PLC的EI(ExternalInterrupt)指令是一种特殊的指令,用于处理外部中断信号。该指令允许PLC在特定条件下对外部中断进行响应并执行相应的操作。EI指令的使...

PLC编程逻辑思维不行,怎么锻炼?

首先,建议要精读或者精学三门课程:离散数学数据结构编译原理。所谓的精读或者精学,不是说简简单单为了应付考试的学习,而是对每个细节每项内容都穷究其理...

plc在线修改程序怎么写入?

PLC(可编程逻辑控制器)的在线修改程序的方式取决于所使用的PLC品牌和型号。以下是一般的步骤:1.连接至PLC:使用PLC编程软件将您的计算机与PLC连接。通常,...

 米德  广州石化 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部