【SCL】博图SCL语言学习 (指令篇 ) | 您所在的位置:网站首页 › gotofunction › 【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编写的时候,将常开赋值给线圈就可以: 效果在虚拟工厂里面可以看一下: 使用逻辑运算符来完成起保停(启动,保持和停止),梯形图如图: 根据梯形图再来转换成scl来写:启动OR电动机 这里相当于启动按钮和电动机辅助常开;&一个NOT停止 相当于串联上一个常闭。 运行效果: 正反转和起保停很相似,使用与、或、取反就好: 效果:这里用绿灯和红灯来表示正转和反转。 这里我们使用取反、或、与来完成了点动自锁正反转;其中OR一个常开相当于梯形图里并联一个常开;AND/&一个常开相当于梯形图里串联一个常开;取反一个常开就变成了常闭。 二、常用程序控制指令在第一部分我们使用了逻辑运算符,当然指令部分还需要学习,在scl模式下它的指令和lad大体相同,不过比梯形图多了一个程序控制指令,是比较常用的指令块之一。如图:这里有和C语言比较相似的if语句,case语句和for/while循环语句。下面我们一起了解并学习! 其中第一句:condition:有条件/状态的意思;then:有然后/那么的意思;第二句:statement section if的意思是语句部分如果;那么整体就是:如果条件怎么怎么,然后下面语句部分执行,最后END-IF结束。 知道大概意思之后,就可以简单使用了!例如:按下启动按钮,电动机启动;用if语句这样写:
效果和上面相同: if...else语句较与if语句多了一个判断,如果条件成立就进行1,否则就就进行2;这里我们用它来完成点动是没有问题的!如果启动为1,电动机就启动,否则就为0不启动。 这一个是条件多分支,如果第一个不满足就执行第二个,两个都不满足就执行最后一个;需要注意的是:1、2、3这三条指令都属于if语句,根据要求可以相互转化,另外可以嵌套使用;本条指令是条件多分支,根据具体的要求可以有相应数量的elseif,可以是2个3个都可以,最后以else结尾就可以。 4. case...of(多分支选择)这一个可以看做if...elseif的加强版,最上面是条件一般是整型,当条件为1执行第一种情况,条件为2执行第二种,也可以是一个范围像2..4,执行另一种情况,最后如果上面条件都不成立执行一种情况。 例题:使用case...of语句控制一个三色灯(红绿黄),按下启动,每间隔1s,依次点亮,再依次熄灭,循环往复,按下停止后全灭。 (这里会用到定时器和计数器,可以先学习定时器计数器,之后再回来看) 这个简单来说,用接通延时定时器形成一个1s的脉冲,再用1s的脉冲来接通一个加计数,用当前值接通或断开三色灯。 具体效果如图: for循环语句:在信息系统中的具体说明:重复执行程序循环。 具体使用可以先建一个变量,初始化赋值;然后确定一个范围,在这个范围内将数组2中的多个数值传到数组1中。 仿真运行后,数组2中的123456,就传到数组1中了。 这一个指令在上一个的基础上加了一个步宽功能,循环一次走几个的意思:下图是每次走两个。
while循环语句可以用在模拟量中根据实时温度或变量来判断;可以重复执行程序循环,当条件不满足时,判断后就跳过执行下一步;当条件满足,则进行循环执行,每执行一次就判断一次,直至条件不满足。 简单举例:当i100时,循环完成,将输出点赋值后跳出循环。
exit指令多在循环中使用,在循环执行中,碰到exit就跳出循环,执行下面指令。 9. (* *) (插入一个注释段)
对()内的程序进行注释。 10.goto...(跳转指令)
当程序执行到goto所定义的标签,就跳转到标签指定点继续执行程序。 这一部分简单介绍了常用指令,上面还有几个不常用的没有介绍到,像:不满足条件时运行指令,退出块指令等。 三、TON(定时器)和CTU(加计数) 1.TON
那么使用是否也和梯形图形同呢,来看下:用中继来触发,计时3s,输出点是黄灯。
这里我们可以来举个常见的例子:星三角来使用一下TON接通延时!(星三角要求:按下启动按钮,主接触器和星型接触器得电,3s后星型断开,三角接触器得电,完成星三角降压启动,按下停止按钮,全部停止)。 如图:实现星三角主要用了if语句和定时器TON,按下启动让主接触器和星型接触器为1,再用主接触器和星接触器为TON的触发条件,计时3秒,时间到后Q点得电,将星型赋值为0,三角赋值为1,完成交换,如果按下停止按钮,将3个接触器赋值为0. 效果图:这里用指示灯代替3个接触器。
另外定时器中还有TP(生成脉冲),TOF(关断延时),和TON的使用方法大致相同:TP的触发可以是一个脉冲,然后就会接通Q点,时间到后关断;
下图是TOF关断延时,接通的时候不会计数,断开后开始计数。
如图:当三角接触器得电时,绿色指示灯亮,按下停止后开始计时2s,然后灭掉。 这里我们还用梯形图中的来进行比较:对应括号中的,CU是计数器的输入端/触发端,R是计数器复位触发的地方,PV是设置次数,Q点是输出端,CV是当前次数。(它们两个相差不是太大)。
了解过之后可以使用一下:需要注意所用的数据类型,输入,复位,输出都是bool型,设置次数是整型。
这里举一个例子来试验一下:每按一次按钮,都亮一个灯(一共3个),按下停止按钮,灯都灭。 如图:这里用了一个上升沿,防止加计数多加,然后根据当前的数值,让灯亮。 效果图: 总结 以上就是本篇文章的全部内容啦!一是复习了上一篇的逻辑运算符,二是将SCl中的程序控制指令说了一下,算是简单了解(可以参考博图里的信息系统),最后说了一下在SCL中TON和CTU的使用还有几个例题,可以结合factoryio来进行练习。 |
CopyRight 2018-2019 实验室设备网 版权所有 |