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软件会判断该地址有没有对应符号名称,如果有则立即转换为符号名称,没有则新建符号名称。
【笔记】ABB机器人零基础编程步骤详解
本文转载自微信公众号“自动化电气工程师技术交流与分享”
本文目标:从零起步,到能如下图运行
主要步骤
一,建立工作站、导入机器人
二,建立系统、配置硬件模块
三,添加用户I/O信号
四,用户信号关联系统信号
五,写程序、示教点位
六,试运行
正文开始
一,建立工作站,导入机器人
1,打开安装好的ABB RobotStudio软件(关注微信公众号“自动化电气工程师技术交流与分享”,首页即有下载入口),双击空工作站
2,选择机器人模型,这里以IRB1600型号为例,选择并确定。
此时画面如下。默认操作快捷键:
平移是Ctrl+拖动鼠标左键,旋转是Shift+Ctrl+拖动鼠标左键
第一步完毕
二,建立系统、配置硬件模块
3,点击机器人系统,选择从布局...
4,选择相同版本的文件夹,点击下一个,再点击下一个
5,点击选项
6,在弹出的窗口中,点击Default Language,去钩English,打钩Chinese
7,再点击Industrial Networks,选择709-1模块。选择完毕后关闭窗口
8,关闭窗口后,确认这里信息是否更新为所选内容,点击完成,此时系统建立完毕
9,依次点击控制器、配置编辑器,选择I/O System
10,弹出窗口后,右键点击DeviceNet Device
11,弹出以下窗口
12,更改选择来自模板的值为图示选项
13,选完上图选项之后,其他数值自动更新为下图所示,此时更改Address的值为10后点击确定
14,弹出下图窗口,点击确定,点击重启控制器
15,当右下角控制器的状态由红到黄再到绿时,表示重启完成
第二步完毕
由于本文较长,请关注微信公众号“自动化电气工程师技术交流与分享 ”查看,内有上百G资源免费下载
本公众号长期分享自动化电气工程师的必备干货,内容涉电工基础、电气制图、设备选型,以及各种主流型号的PLC、触摸屏、伺服驱动、步进驱动、变频器、机器人、视觉、MES上位机等的软件、教程、资料,升级之路需学习的Python、C#、LabView、VB等资源
相关问答
学python对plc编程有用吗?
没有用,PLC可编程控制器,用于工业控制,属于硬件控制语言,控制数字信号,比较底层,编程也比较简单,十分容易学习。python是一种集成强大的三方库的应用级编...
plc和python有什么区别?都有什么用途?
PLC可编程控制器,用于工业控制,属于硬件控制语言,控制数字信号,比较底层,编程也比较简单,十分容易学习。简单的例子,你可以用它控制多个灯的亮和灭的顺序...pyth...
会python后学自动化难吗?
您好,学会Python后学习自动化并不难,但需要一些时间和努力。自动化需要掌握一定的编程技能、软件开发和工程方面的知识。学习自动化需要掌握以下几个方面:1...
机器人编程怎么入门?
1、先学习C语言,这是基础,然后学习单片机,然后就是实验步进电机的控制,译码器的工作原理和编程等等,这些是入门,有基础之后可以学点Arduino之类的,了解当...1...
PLC编程逻辑思维不行,怎么锻炼?
5.学习其他编程语言:学习其他编程语言,如C语言、Python等,可以帮助提高编程逻辑思维能力,对PLC编程也有一定的借鉴作用。4.参与项目实践:参与实际的PLC项目...
plc十六进制怎么转ascii码?
要将PLC的十六进制转换为ASCII码,可以使用编程语言实现。首先,将PLC的十六进制数值转换为十进制数值。然后,将该十进制数值转换为对应的ASCII字符。具体转换方...
step7的编程方式?
Step7可以使用不同的编程方式实现,具体取决于您使用的编程语言和环境。以下是几种可能的编程方式:1.命令行编程:在命令行界面中编写和运行代码。可以使用文...
PLC培训费用一般是多钱?-ZOL问答
2、在线培训在线PLC培训相对便宜,一般在几千元左右,但是需要自己购买相关的学习资料和软件。3、企业内部培训一些企业会为员工提供PLC培训,费用一般由企业承...
机械手的自动化编程都是用哪些计算机语言?
plc自动化编程一般都是C/C++javaPython等一些编程语言楼上不懂瞎说误人plc自动化编程一般都是C/C++javaPython等一些编程语言楼上不懂瞎说误人
对编程完全零基础的人来说,有必要花费时间去自学python语言吗?
观点:编程零基础的人来说,对于Python,花费时间去自学不存在必不必要的问题,在于自己敢不敢或者说可不可以去自学。我想说的是,对于小白,你可以先找份数据分...我...