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

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

简单举例:当i<100时,然后循环执行并判断条件;当i>100时,循环完成,将输出点赋值后跳出循环。 

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来进行练习。

  • 87
    点赞
  • 567
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
博图SCL(Structured Control Language)是一种用于编程的标准化程序设计语言。它是西门子公司所研发的,特别适用于可编程逻辑控制器(PLC)和其他自动化控制系统。 《博图SCL语言编程手册》是一本介绍博图SCL语言的参考书籍。它详细阐述了SCL语言的语法、结构和编程方法。 该手册从基础到进阶,逐步引导读者掌握SCL语言的核心概念和使用技巧。首先介绍了SCL语言的基本语法,包括变量声明、赋值语句、条件语句和循环语句等。然后深入讲解了SCL语言的高级特性,如函数定义、数组操作和数据类型转换等。 除了语法的介绍,该手册还提供了大量的实例代码和示意图,帮助读者更好地理解和应用SCL语言。这些示例涵盖了常见的自动化控制场景,例如传感器数据处理、逻辑判断和输出控制等。 此外,该手册还介绍了SCL语言和其他编程语言的对比,以及在实际项目中的应用指导。读者可以了解到如何利用SCL语言编写高效、可靠的控制程序,以及如何优化代码结构和性能。 总的来说,《博图SCL语言编程手册》是一本权威且实用的参考书籍,对于从事自动化控制领域的工程师、编程人员以及对SCL语言感兴趣的读者来说,是一本不可多得的学习资料。通过学习和应用该手册中所介绍的内容,读者能够更加熟练地运用SCL语言进行编程,并能够设计出更加高效和可靠的自动化控制系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值