研选课堂
HOME
研选课堂
正文内容
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中编辑变量和数据:

(一)基本知识

1、变量分类

变量是在程序执行时可以修改的内存区域。Unity Pro 软件编程可以使用两种类型的变量:

1) 定位变量:是与 I/O 硬件模块输入输出通道相关联的,或者与内存引用相关联的变量。例如:“启动电机”与输入模板通道 %I 0.5.0 相关联,“启动电机”就是定位变量。

2) 非定位变量:是既不与I/O 硬件模块输入输出通道相关联,也不与内存引用地址相关联的变量,即没有地址关联的变量成为非定位变量。非定位变量在内存中的位置不可知。这种变量定义类型可以使您在编写程序时抛开地址的束缚,完全专注于您的应用。

2、通用数据类型和范围

 BOOL/EBOOL : 布尔变量必须为 FALSE (0) 或 TRUE (1). EBOOL处理强制和边沿检测

 WORD : 代表 “位串16”, 意味着数据长度为 16 位

 INT : 代表整型数. 数值范围从 -32768 至 +32767

 UINT : 代表无符号整型数. 数值范围从 0 至 65535

 REAL : 代表浮点值. 数值范围从 -3.40e+38 至 3.40e+38

3、 通用数据类型的立即值语法

通常基本数据类型(EDT)的实例采用变量名或拓扑地址的方式引用,而在数据编辑器或程序段中也可以通过立即值的方式赋值和引用。如下图所示。

4、定义变量的三种方式

方式一,在项目浏览器中鼠标双击“变量和FB实例”,在弹出的‘数据编辑器窗口’定义,编辑、修改变量,如下图。

方式二,在项目浏览器中双击CPU或I/O模块,如下图查看相应模块的地址,在模块的I/O对象表格里定义,这种方式只能生成,不支持修改和删除。

方式三,在”程序编辑窗口”中定义,这种方式只能生成,不支持修改和删除。

(二)实际操作

1、在项目浏览器中点击“变量和FB实例”,在右侧“名称”下输入start,类型选 EBOOL,在下一行输入 stop,类型选 EBOOL,然后关闭窗口。如下图:

2、从硬件属性中书写:在项目浏览器中双击DDO3202k;左键点右侧“BMX DDO3202k”,选择I/O对象,再选择%Q,然后点击“更新网络”。在该界面右侧%Q0.2.0名称下,改写为cmd_motor,再用鼠标左键选中第2行,按着鼠标左键下拉,选择右侧Q0.2.1、Q0.2.2、Q0.2.3;然后在左侧“名称前缀”框中输入cmd_,点击“创建”。即可形成cmd_0、cmd_1、cmd_2;如下图:

3、关闭所有窗口,点击“变量和FB实例”,会显示刚才所有的定义变量名。

4、按保存按钮,保存项目。

相关问答

plc程序段注释怎么写?

1.PLC程序段注释需要按照一定的格式进行书写。2.原因是注释的目的是为了方便程序的理解和维护,因此需要清晰明了地描述程序段的功能和作用。3.在编写PLC程...

s7-200plc多段速程序怎么写?

1、多段速程序需要用到定时器和计数器来实现。2、首先,明确结论:多段速程序需要根据不同的运动阶段来控制不同的速度,以满足不同的需求。3、解释原因:在程序...

plc中子程序和中断程序的书写位置有什么要求?

子程序书写在主程序中,中断程序书写主程序的最前面。子程序书写在主程序中,中断程序书写主程序的最前面。

PIC的标准编程语言分别是?

一、PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作...指令格...

三菱plc编程语言的种类有哪些?

感谢邀请!三菱FX系列的主要是3系包括(FX3S、FX3G、FX3GC、FX3U、FX3UC)可编程控制器支持一下6中编程语言:指令表编程、梯形图编程、SFC步进图编程、ST结构文本...

别人给了我几个编程软件放在U盘里.怎么把这些软件装在电脑里...

如果这几个编程软件是可执行文件(*.exe),直接双击安装。如果是安装后的文件夹...WR(WorkRegister)代表辅助继电器,PLC程序中用作中间继电器使用,因书写方法区...

请问PLC组合位元件用法是怎样?

三菱系列的PLC可以用位元件以位元件组的形式接受或发送二进制数据,1个位元件组由4个连续位元件组成,书写形式是KnX**、KnY**、KnM**等,比如K1X000就表示起始...

关于OMRON(欧姆龙)PLCUSB驱动程序的問題-ZOL问答

呵呵,换系统吧,有好多编程软件不支持新出来的系统的,最高就是XP有用(0)回复...WR(WorkRegister)代表辅助继电器,PLC程序中用作中间继电器使用,因书写方法区...

plc转盘系统发展背景?

PLC的发展背景及其功能概述PLC,(ProgrammableLogicController),乃是一种电子装置,早期称为顺序控制器“SequenceController”,1978NEMA...

欧姆龙PLC编程中,BIN有的怎么写成“00CB”hex,BIN不是表明二...

3条回答:【推荐答案】hex代表十六进制,因为二进制数书写起来比较长,所以一般写成十六进制。00CB(16)=0000000011001011(2)。

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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