研选课堂
HOME
研选课堂
正文内容
java plc编程 PLC编程小白必知:关于SCL语言编程方法的简介
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC编程小白必知:关于SCL语言编程方法的简介

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

在TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择SCL语言。

SCL语言类似计算机高级语言,如果你有C、Java、C++、Python这种高级语言的学习经历,再学习SCL就会容易很多。

在用SCL语言编程时,主要用IF...THEN/FOR/WHILE语句去构造条件、循环、判断这样的结构,在这些结构中再次添加指令,去实现逻辑判断。所有程序的编写都是在纯文本的环境下编辑,不像梯形图那么直观。

今天就和大家聊一下关于SCL编程的基础知识:

变量与常量地址与符号寻址方式

以上是PLC技术学习的基础知识,但凡懂一点PLC,对上面三部分内容应该都不会陌生。所以我也不打算把书本上的东西再重复一遍,这篇文章我只介绍在SCL中,上面三部分内容的使用以及与梯形图中的不同之处。

1、变量与常量

简单点来说,在程序运行时如果一个数据的值是不确定的我们就把它称作变量 。比如锅炉的温度,水流的速度,这些数据会随着时间(或者其他因素)波动。

反之,肯定会有一部分数据,不会受到外界的干扰,就是唯一值,这部分数据我们就称作常量 。比如一天有24小时,π=3.14。

常量的存在主要是为了存储一些固定的数值,在编程时使用常量能减少出错率。声明后的常量也比较容易修改。

举例来说,程序中如果有多处使用π,我们可以先定义π为常量,然后在编程时只需要把π带入公式即可,这样就能减少每次输入3.14出错的概率。后续维护时,想提高计算精度,我们可以直接在声明中改变π,使π=3.1415926,否则多处的数值改起来会相当麻烦。

无论是变量还是常量,在 TIA Portal 中按照作用的区域又可以分为全局和局部 。也就是我们常说的全局变量、全局常量,局部变量、局部常量。

全局变量 (或者全局常量)如果简单理解,大概分为两种,一种是在PLC变量表中建立的变量(或者常量)。还有一种是全局DB中创建的变量(或者常量)

全局变量可以被PLC中的所有程序使用,比较典型的就是PLC中的 I、Q、M存储区。

局部变量 (或者局部常量)一般是在FC/FB中建的变量(或者常量),也就是我们常说的内部变量(或者内部常量)

正常情况我们在某一个FC/FB中声明的内部变量,只会在该FC/FB中使用。但是TIA Portal软件中对该要求没有强制,也就是说FC/FB的内部变量也是可以被其他的FC/FB处理的。

在SCL编程时我们最好不要使用外部程序,处理内部变量,否则在程序移植时很容易出错。

2、地址与符号

变量的声明: 变量的声明有时候也叫变量定义,定义变量通常要指定变量的名称、数据类型,默认值等属性。

在SCL编程中,一定记住这个准则:变量要先定义后使用

变量的主要作用是用于存储数据,是数据存储的基本单元。声明变量就是向PLC的寄存器中,申请一块特定的区域用于存储数据。

这块区域的属性就是变量的属性,比如一个短整型变量占用2个字节,单精度浮点型数据占用4个字节。

在 TIA Portal 中声明局部变量会像上图中所示,利用表格的形式定义各种数据。

Input、Output、Inout这三种是FB对外的接口(形式参数),Static、Temp、Constant主要用于FB程序内部。

常量定义 :在声明常量时,并不像变量那样占用PLC的特定存储区域,所以常量也就没有绝对地址。因为常量就代表了特定的数值,在程序中也禁止修改常量。

上图是定义局部常量的方法,全局常量在PLC变量表的【用户常量】标签页里定义,如下图所示:

3、寻址方式

寻址就是我们对数据的访问方式,有绝对地址寻址符号寻址 两种。

PLC中的存储区域主要有四种:I、Q、M、DB。我们可以直接通过地址进行读取数据,比如 I0.0、MW10、DB1.DBW20。这种访问数据的方式就叫做绝对地址寻址

前面讲过,变量要先定义再使用,在定义变量的过程中,我们就赋予了绝对地址一个特殊的符号名称,通过定义的符号进行数据访问就是符号寻址。

在TIA Portal 中使用绝对地址编程时,软件会自动添加默认符号(博途不允许无符号名称的变量出现),并且增加了优化访问模式的DB。可见在S7-1200/1500编程中,弱化了绝对寻址。

SCL编程时符号寻址的书写格式:

DB块变量的寻址格式:"DB块名称".变量名称

PLC变量的寻址格式:"变量名称"

局部变量的寻址格式:#变量名称

上图是三种变量在SCL程序编写过程中,书写的格式,在编程SCL程序时需要严格遵守。

忘记书写格式时,可以通过拖拽的方式使用变量,或者使用软件的智能关联功能。

SCL编程时也可以使用变量前加 % 的方式使用绝对地址寻址,DB块变量的书写格式为%DB块号.变量地址。TIA PORTAL软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则保留绝对地址。

如果是PLC变量,也可以通过%变量地址的方式使用绝对地址寻址,TIA PORTAL软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则新建符号名称。

最流行的 PLC 编程语言盘点,你使用的是哪一种?

最流行的 PLC 编程语言是什么?

世界各地的工程师都在争论这个问题。普遍认为,PLC 编程最常用的语言是梯形逻辑。这是因为它非常灵活、易于学习,而且使用过相同架构原理图的电工很容易理解它。

然而,在过去十年中,更年轻的劳动力进入了制造业。这些工程师和技术人员主要学习 Java、Python 和 Javascript 等现代语言。这些语言与结构化文本 [ST] 更相似,因此促进了其使用。

考虑相关行业也很重要。化学工艺通常使用管道和仪表图 (P&ID) 进行设计。这些特定示意图可通过使用功能块图 [FBD] 轻松复制。

梯形逻辑 PLC 编程

在可编程逻辑控制器流行之前,大多数制造工厂都采用继电器控制。继电器根据通过设备物理接线实现的简单逻辑来驱动负载。这些设备的接线在电气图纸中指定,这些图纸假定布局类似于梯子。随着最基本的 PLC 被引入该领域,梯形逻辑 PLC 编程旨在模仿基于继电器的电路布局。换句话说,梯形逻辑是最早的PLC 编程语言之一,由于其简单性,至今仍在使用。

‍自诞生以来,梯形逻辑已发生了重大变化。但是,操作的基本原理保持不变。梯形逻辑PLC 编程按顺序评估梯形图的每个梯级,评估条件指令,如果结果评估为“TRUE”,则执行输出指令。

梯形逻辑 PLC 编程的优点

易于实施和故障排除:梯形逻辑是一种可视化语言,可为大多数指令提供状态确认。换句话说,即使对特定流程知之甚少的人也可以轻松浏览程序并了解逻辑。模块化设计:梯形逻辑可通过逻辑的增加或减少轻松修改。每个梯级都是一个单独的条件,可以根据需要删除或添加。弹性和一致性:Ladder Logic 允许用户实现许多功能。但是,该语言高度标准化,无法提供充分的灵活性,因此需要在不同实现之间保持代码的一致性。

梯形逻辑的缺点

学习难度高:Ladder Logic 是一种简单的语言,但对于具有 C、C++、Java 或 Python 背景的人来说,它并不是非常直观。话虽如此,但对于电气工程师和具有汇编编程基础知识的人来说,它可能更容易掌握。部署缓慢:由于梯形逻辑的可视化特性,程序员需要更长的时间来创建他们所设想的逻辑。与其他现代编程语言相比,需要拖放元素,这会减慢开发过程。对于复杂应用来说不够直观:梯形逻辑在顺序布尔任务方面表现优异。然而,当涉及到涉及 PID、流量控制、模拟传感器和反馈回路的现代控制理论时,它并不总是易于实施和解读。

结构化文本 PLC 编程

结构化文本是一种与 C 或汇编语言非常相似的PLC 编程语言。用户输入按顺序执行的代码行,评估特定函数、布尔检查并激活 PLC 的适当输出。结构化文本为具有 C、C++、Java 或 Python 等传统编程语言背景的用户提供了进入 PLC 的简单过渡。此外,它可以在文本处理器中轻松操作,因此无需硬件即可快速实现。

结构化文本 PLC 编程的优点

与其他编程语言一样直观:如上所述,结构化文本对于那些希望从软件工程背景过渡的人来说很容易学习。它具有与 C 或 Java 中相同的结构、编程范例和功能。高复杂度:结构化文本比其他语言具有更大的灵活性,因此掌握该语言的人可以更轻松地实现高级功能。可移植性|:结构化文本在大多数 PLC 系统中都是标准化的,因此很容易在平台之间迁移。您会发现不同平台之间其他语言存在显著差异,但结构化文本可以在硬件和软件平台上实现。

结构化文本的缺点

难以排除故障| 与梯形逻辑编程相比,结构化文本从故障排除的角度来看要复杂得多。没有视觉队列,视觉辅助较少,并且一行上通常有更多代码。不熟悉这种语言的人很难弄清楚流程。易出错| 结构化文本为用户提供了更大的灵活性。然而,这种灵活性是以标准化为代价的。用户必须使用软件工程最佳实践来创建安全后备并捕获软件的任何潜在故障。

功能块图 PLC 编程语言

功能块图 (FBD) 是一种专门为化学过程开发的编程语言。它允许用户创建过程的可视化表示和流程,并在指令之间进行适当的转换。可视化编辑器用户友好、直观,并创建了一种自然的方式来实现特定流程。

我们在 PLC 程序中使用功能块图的最常见应用是建立 PID 控制器。FBD 的可视化功能使 PID 易于在现场实施、可视化、调整和故障排除。

功能块图 PLC 编程的优点

灵活的可视化编辑器:功能块图编程编辑器非常用户友好,并提供了创建任何布局的简单方法。适合复杂的编程结构:在梯形逻辑中,用户必须使用多个梯级才能在单个 FBD 页面上完成可能完成的任务。这些指令可以直接带入实现 PID 循环、运动控制和附加指令 (AOI) 的复杂 PLC 指令中。用户友好:FBD 的可视化编辑器对于大多数用户来说都是自然而然的事情。可以通过拖放方法重新创建流程布局,几乎不需要猜测。

功能块图 PLC 编程的缺点

难以标准化:由于布局的灵活性,标准化用 FBD 编写的程序具有挑战性。每个 PLC 程序员的方法都与其他人不同。落后的人很难理解信息流。‍规模化带来的麻烦:FBD 在流程特定领域的小型实施方面表现出色。然而,随着程序变得复杂,很容易迷失在所有表格中。

顺序功能图 PLC 编程语言

顾名思义,顺序功能图(SFC)在后续流程中非常有用。对于不熟悉此概念的人来说,一个例子是从原材料到成品的化学转化。让我们以一个简单的酿造过程为例。

想象一下一个大型啤酒酿造厂,里面有无数的罐子、阀门、压力传感器、加热元件和包装部分。当操作员开始生产新一批啤酒时,该过程将按照以下步骤进行。请注意,这些步骤已简化。

步骤 1 - 验证系统是否准备就绪。所有适当的成分是否可用?储罐是否空了?阀门是否处于正确状态?如果所有检查的答案均有效,则继续。如果不是,则中止。

步骤 2 - 启动罐体填充程序,可能需要多种成分(水、糖、盐、酵母等)。验证状态并在罐体装满后继续。

步骤 3 - 开始冲泡过程。升高温度并维持一段时间。监测罐压并做出相应反应。如有必要,添加配料。冲泡完成后继续下一步。

步骤 4 - 开始转移到储罐。我们的批次已准备就绪;确认所有适当的阀门都已设置在正确的位置,储罐已空,然后开始转移过程。

步骤 5——将批次转移至装瓶设施。

从上面的示例大纲可以看出,流程步骤按顺序执行,具有定义的启动条件和流程,就像流程在生产设施中运行一样。在梯形逻辑中,此过程可以通过 SQI/SQO 指令实现。但是,更好的方法是利用 SFC。

顺序功能图 PLC 编程的优点

模拟大多数化学工艺的工艺流程 | 配料是一种常见的化学工艺方法,它采用一定数量的原料并将其转化为最终产品。SFC 在这些应用中大放异彩。结合 ST | 大多数 SFC 编辑器允许在特定情况下使用结构化文本来创建高级逻辑流。

顺序功能图的缺点

不适用于大多数应用 | 将顺序功能图应用于非顺序流程是一项挑战。换句话说,它的用例数量有限。‍并行流程难以实施和排除故障 | 您可以通过 SFC 实施无限数量的流程。但是,随着流程路径分成多个流程,实施单独的流程路径以形成稳健的序列变得困难。

指令表 PLC 编程语言

由于指令列表和结构化文本的编辑器相似,因此它们经常被混淆。这两种 PLC 编程语言通常出现在不同的平台上,因为它们的流程相似。

就程序流程而言,每行都指定指令以及执行的条件和结果。在许多方面,指令列表比结构化文本更接近于您实现梯形逻辑程序的方式。但是,这两种语言都能够创建相同的流程。

指令表 PLC 编程的优点

高度标准化:指令列表遵循严格的结构,要求用户明确创建变量、指定条件并列出每条指令。程序实现之间几乎没有差异,因此代码易于理解。以指令为中心:顾名思义,指令比数据流更重要。这种编程风格使程序中数据的处理方式更加清晰。

指令列表的缺点

大多数 PLC 平台上都不可用:如上所述,指令列表不是一种流行的编程方法,因为它们对大多数程序员来说并不自然。它们更接近于人们在汇编语言中看到的内容,而不是市场上任何其他编程语言。

结论

五种最流行的 PLC 编程语言是梯形逻辑、结构化文本、功能块图、顺序流程图和指令列表。这些编程方法在大多数平台上都可用。但是,某些 PLC 会限制用户使用某些语言,除非用户支付额外费用。

你使用的是哪种编程语言呢?评论区留言!

相关问答

plc编程和软件编程的区别?

1.语言上有不同,PLC编程一般都是LAD语言(也就是梯形图),而软件语言是语法语言。2.PLC编程一般要了解设备的工艺流程,各种运行设备之间的逻辑关系,而软件语...

27岁,高中学历,0基础,是转行自动化(plc),还是转It更好?

搞工控可选,但要投入太多的精力学习,不是简单的plc编个程就能混饭吃,它涉及品牌太多,虽有相同之处,也有很多不同之处,全要了解,我是同行,行的话可私信我...搞...

上位机编程入门基础知识?

上位机编程入门的基础知识包括:学习基本的编程语言(如C、Java)、理解控制系统的工作原理、了解PLC编程、熟悉不同传感器和执行器的原理及应用、掌握数据通信和...

学会了plc,下一步该怎么去深造,以后会更有钱途?

我来说一下我个人的看法,学会了PLC控制这块,如感觉还想再深造,我建议要学自动化控制,因为工业制造业会不断持续的升级,现在已经到了自动化过程控制这一步了...

同志们,我想知道:老牌的PLC编程哪家有实力,PLC编程外观如何??

[回答]今年刚跟宇丰工业自动化合作,朋友公司和他们合作好几年了,各方面都挺满意给我推荐的。宇丰运动控制就是伺服按要求走轨迹,比如这个轨迹可以是人为...

plcedit使用教程?

plcedit安卓版是一款可以随时在手机上进行编程的软件。plcedit安卓版拥有众多基础的编程模板任你免费使用,可以省去很多麻烦。有了plcedit安卓版,打开手机就...

电气编程调试人员怎么学?

电气编程先要熟知电路图以及各类元件的功能标示。其次如果是plc编程就得学习对应的语言。了解编程基本概念和底层原理,知道程序在机器里到底怎么运行的,然后...

工业机器人编程难学吗?

机器人的开发语言一般为C、C++、C++Builder、VB、VC等语言,主要取决于执行机构(伺服系统)的开发语言;而机器人编程分为示教、动作级机器人编程语言、任务级...

培训班出来的初级程序员怎么进入华为?

没去过华为面试,但是本人在其他大厂待过,估计华为的入职要求也差不多。要想去一家公司入职,首先需要有面试机会,有内推渠道就走内推渠道,没有就投简历,对了...

plc与dcs通信采用profibus总线方式应如何做-懂得

使用JAVA可能是目前2个回答,kBuORFw03m回答了:

 脑机接口系统  你们都是我的妞儿 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

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

热线

188-0000-0000
专属服务热线

微信

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