【SCL】博图SCL语言学习 (指令篇 ) 您所在的位置:网站首页 gotofunction 【SCL】博图SCL语言学习 (指令篇 )

【SCL】博图SCL语言学习 (指令篇 )

2023-11-23 02:51| 来源: 网络整理| 查看: 265

博图SCL语言常用指令的学习和使用以及相关例题。

文章目录

目录

文章目录

前言

一、逻辑运算符的使用

 1.点动

 2.自锁(起保停)

 3.正反转

4.小结 

二、常用程序控制指令

1. if...then(条件执行) 

2. if...then...else(条件分支)

3. if...then...elseif...else(条件多分支)

4. case...of(多分支选择)

5. for...to...do (在计数循环中执行)

6. for...to...by..do(在按步宽计数循环中执行)

7. while...do (满足条件时运行)

8. exit (立即退出循环)

9. (*  *) (插入一个注释段)

10.goto...(跳转指令)

 11.小结

三、TON(定时器)和CTU(加计数)

1.TON

 2.CTU

 四、例题

1.使用if语句实现正反转。

2.使用计数器和case语句等 完成跑马灯(要求:按下启动按钮,依次点亮6个灯,间隔1s,6个灯全亮后再依次熄灭,然后1,3,5灯亮1s后灭,2,4,6灯亮,1s后灭,交替闪烁5次结束,按下停止按钮,灯全部熄灭)

前言

这里接着上一篇的内容继续向下写,上一篇简单介绍了SCL的优点、作用、表达式和运算符以及逻辑运算符;本篇继续学习:1.使用逻辑运算符来实现点动,自锁和正反转。2.了解常用的指令并使用。3.练习题。

(注:关于指令的使用和相关例题的试验可以使用博图软件的仿真,或连接实际PLC;这里主要使用仿真和factoryio进行连接试验)

一、逻辑运算符的使用

在上一篇我们学习了逻辑运算符:取反(NOT)、或(OR)、与(AND/&)、异或(XOR),这里我们学习如何使用它们!

 1.点动

按下为1,松开为0;梯形图是这样:由常开接一个线圈,就可以。

 那么使用scl编写的时候,将常开赋值给线圈就可以:

 效果在虚拟工厂里面可以看一下:

 2.自锁(起保停)

使用逻辑运算符来完成起保停(启动,保持和停止),梯形图如图:

 根据梯形图再来转换成scl来写:启动OR电动机 这里相当于启动按钮和电动机辅助常开;&一个NOT停止  相当于串联上一个常闭。

运行效果: 

 3.正反转

 正反转和起保停很相似,使用与、或、取反就好:

 效果:这里用绿灯和红灯来表示正转和反转。

4.小结 

 这里我们使用取反、或、与来完成了点动自锁正反转;其中OR一个常开相当于梯形图里并联一个常开;AND/&一个常开相当于梯形图里串联一个常开;取反一个常开就变成了常闭。

二、常用程序控制指令

在第一部分我们使用了逻辑运算符,当然指令部分还需要学习,在scl模式下它的指令和lad大体相同,不过比梯形图多了一个程序控制指令,是比较常用的指令块之一。如图:这里有和C语言比较相似的if语句,case语句和for/while循环语句。下面我们一起了解并学习!

1. if...then(条件执行) 

 其中第一句:condition:有条件/状态的意思;then:有然后/那么的意思;第二句:statement section if的意思是语句部分如果;那么整体就是:如果条件怎么怎么,然后下面语句部分执行,最后END-IF结束。

知道大概意思之后,就可以简单使用了!例如:按下启动按钮,电动机启动;用if语句这样写:

 例题:用if语句来完成起保停

 

 效果和上面相同:

2. if...then...else(条件分支)

 if...else语句较与if语句多了一个判断,如果条件成立就进行1,否则就就进行2;这里我们用它来完成点动是没有问题的!如果启动为1,电动机就启动,否则就为0不启动。

3. if...then...elseif...else(条件多分支)

 这一个是条件多分支,如果第一个不满足就执行第二个,两个都不满足就执行最后一个;需要注意的是:1、2、3这三条指令都属于if语句,根据要求可以相互转化,另外可以嵌套使用;本条指令是条件多分支,根据具体的要求可以有相应数量的elseif,可以是2个3个都可以,最后以else结尾就可以。

4. case...of(多分支选择)

这一个可以看做if...elseif的加强版,最上面是条件一般是整型,当条件为1执行第一种情况,条件为2执行第二种,也可以是一个范围像2..4,执行另一种情况,最后如果上面条件都不成立执行一种情况。

例题:使用case...of语句控制一个三色灯(红绿黄),按下启动,每间隔1s,依次点亮,再依次熄灭,循环往复,按下停止后全灭。 (这里会用到定时器和计数器,可以先学习定时器计数器,之后再回来看)

 这个简单来说,用接通延时定时器形成一个1s的脉冲,再用1s的脉冲来接通一个加计数,用当前值接通或断开三色灯。

 具体效果如图:

 

5. for...to...do (在计数循环中执行)

 for循环语句:在信息系统中的具体说明:重复执行程序循环。

 具体使用可以先建一个变量,初始化赋值;然后确定一个范围,在这个范围内将数组2中的多个数值传到数组1中。

 仿真运行后,数组2中的123456,就传到数组1中了。

6. for...to...by..do(在按步宽计数循环中执行)

这一个指令在上一个的基础上加了一个步宽功能,循环一次走几个的意思:下图是每次走两个。

 仿真图:

7. while...do (满足条件时运行)

while循环语句可以用在模拟量中根据实时温度或变量来判断;可以重复执行程序循环,当条件不满足时,判断后就跳过执行下一步;当条件满足,则进行循环执行,每执行一次就判断一次,直至条件不满足。

简单举例:当i100时,循环完成,将输出点赋值后跳出循环。 

8. exit (立即退出循环)

  

 exit指令多在循环中使用,在循环执行中,碰到exit就跳出循环,执行下面指令。

9. (*  *) (插入一个注释段)

  

 对()内的程序进行注释。

10.goto...(跳转指令)

 

当程序执行到goto所定义的标签,就跳转到标签指定点继续执行程序。 

 11.小结

 这一部分简单介绍了常用指令,上面还有几个不常用的没有介绍到,像:不满足条件时运行指令,退出块指令等。

三、TON(定时器)和CTU(加计数) 1.TON

 这里类似一个代码块,括号中有IN,PT,Q,ET;我们可以和梯形图中的对比来看:IN是输入端或者叫触发端,PT是设定时间,Q点是输出点,ET是当前时间(两个都很类似)。

那么使用是否也和梯形图形同呢,来看下:用中继来触发,计时3s,输出点是黄灯。

 

这里我们可以来举个常见的例子:星三角来使用一下TON接通延时!(星三角要求:按下启动按钮,主接触器和星型接触器得电,3s后星型断开,三角接触器得电,完成星三角降压启动,按下停止按钮,全部停止)。

如图:实现星三角主要用了if语句和定时器TON,按下启动让主接触器和星型接触器为1,再用主接触器和星接触器为TON的触发条件,计时3秒,时间到后Q点得电,将星型赋值为0,三角赋值为1,完成交换,如果按下停止按钮,将3个接触器赋值为0. 

效果图:这里用指示灯代替3个接触器。

 

另外定时器中还有TP(生成脉冲),TOF(关断延时),和TON的使用方法大致相同:TP的触发可以是一个脉冲,然后就会接通Q点,时间到后关断;

 

下图是TOF关断延时,接通的时候不会计数,断开后开始计数。 

 这里可以举个小例子:在星三角降压启动完成后,亮绿色指示灯,代表启动完成,当按下停止按钮后,过2s灭掉。(这里再加入TOF就可以了)。

如图:当三角接触器得电时,绿色指示灯亮,按下停止后开始计时2s,然后灭掉。 

 2.CTU

这里我们还用梯形图中的来进行比较:对应括号中的,CU是计数器的输入端/触发端,R是计数器复位触发的地方,PV是设置次数,Q点是输出端,CV是当前次数。(它们两个相差不是太大)。

 

了解过之后可以使用一下:需要注意所用的数据类型,输入,复位,输出都是bool型,设置次数是整型。

 

 这里举一个例子来试验一下:每按一次按钮,都亮一个灯(一共3个),按下停止按钮,灯都灭。

 如图:这里用了一个上升沿,防止加计数多加,然后根据当前的数值,让灯亮。

 效果图:

 四、例题 1.使用if语句实现正反转。 2.使用计数器和case语句等 完成跑马灯(要求:按下启动按钮,依次点亮6个灯,间隔1s,6个灯全亮后再依次熄灭,然后1,3,5灯亮1s后灭,2,4,6灯亮,1s后灭,交替闪烁5次结束,按下停止按钮,灯全部熄灭)

 总结

以上就是本篇文章的全部内容啦!一是复习了上一篇的逻辑运算符,二是将SCl中的程序控制指令说了一下,算是简单了解(可以参考博图里的信息系统),最后说了一下在SCL中TON和CTU的使用还有几个例题,可以结合factoryio来进行练习。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有