scl编程教程
❶ 问一个问题:PLC中,在SCL编程时,如何让IF语句中,Then后面的两条语句连续执行加什么符号
SCL语言中,用BEGIN和END分别代替C语言中的“{”和"}",这样应该清楚了吧
比如,C语言这样写
main
{
int i,j,num;
if(num==0)
{
i=i+1;
j=j+1;
}
}
那么SCL就要这样:
BEGIN
I,J,NUM:INT;
IF NUM=0 THEN
BEGIN
I:=I+1;
J:=J+1;
END
END
❷ 西门子PLC SCL编程指令讲解
在SCL程序编写中,在逻辑控制或者数据处理分析中,有一类指令我们用得最多,就是程序控制指令,常见的入IF ,Case ,For 和While 等。下面我仔细的讲解,有疑问可以留言提出:
图1 程序控制指令
IF .. THEN 指令
IF 指令含有含有三个分支,分别是Then ,Else 和ElsIF。
图2 IF 语句
图3 浮点数比较条件
IF语句应该是SCL里面最常用的语句了,常用于条件判断。判断类型可以是BOOL类型,可以是浮点类型等等,基本上所有类型都可以判断,只要比较的两个变量类型是一样。
在图2中,AByte 是Byte 类型,因为1在0..255之间,所以1会自动转化为Byte类型。如果比较的是Abyte类型是256,会是什么样子呢?读氏宴者可以自己写的程序,试验一下,看看结果,会加深你对数据类型的理解。
上面程序中,首歼粗银先比如AByte是否和1相等,如果相等则Outvalue的值为1,然后和2比较,如果和2相等,那么OuValue值为2,如果都满足条件OuValue 的输出值则为5。
上述的IF条件语句,也可以用CASE语句来进行表示。CASE的比较类型没有IF 范围广,只有整形才能做为比较条件。
CASE指令
图4 IF语句的CASE表达方式
从CASE语句表述中,我们发现语句相对于IF表达式来说,更加清晰简单明了,所以如果需要用到整形条件作为判断,尽量用CASE来实现,会提高效率。
FOR 指令
FOR指令常用来对数组类型数据进行批量处理,在上一期讲解中已经举过一个例子,下面举个稍微复杂点的例子。
图5 FOR循环语句
在FOR程序,我们对数组的每一个索引值进行赋值,同时判断索引值的奇偶性来进行赋值操作。
图6 FOR循环语句2
在上面的程序里面,我们发现有一个关键字Continue .当FOR循环执行到该语句的时候,Continue下面的程序都不会执行。所以,当iCout小于15的时候,AArray[iCount]:=iCount赋值语句不会执行。
还有一个地方有点区别,就是FOR 语句后面,多了一个关键字 BY 。BY的含义是For 执行的间隔按照BY的设定来执行。如果后面设定为1,则0..99全部执行;如果设定为2,则执行顺序为0,2,4,6,8的顺序来执行。
上述的FOR循环语句,我们同样可以采用WHILE循环来实现。
WHILE 指令
图7 WHILE指令
WHILE循环的表达方式和FOR循环基本类型,但是我们注意一点,这里面对循环变量,手动进行进行递进。如果没有这一句,iCount的值一直为0,循环条件iCount<100将一直为True,WHILE循环会一直执行。所以切记一定执行该语句。
我们还注意到一个关键字EXIT,当执行到该指令的时候,WHILE循环会停止执行,FOR指令也是一样。所以上面的程序,运行下来的情况是,数组的赋值只执行到AArray[81]结束。
GOTO指令
goto指令主要用来执行跳转过程,可以带来程序操作的便利性,一般不推荐使用。若操作不当,则会打乱整个程凳陆序的逻辑性。
在图7 中,如果iCount 大于90,那么,程序就会跳出WHILE 循环执行指定标签lable13地方程序#iCount=0,继续从头开始执行WHILE循环。当然这个操作是毫无意义的,这里只是举个例子而已。
❸ 请问有没有学习SCL语言的专业书籍用于西门子PLC编程的资料!谢谢
1、最权威的资料其实是安装了scl软件包后附带的电子文档(pdf格式),英文版的,我当年就是一点点看下来的,不过看起来蛮累,毕竟不是教材,但是很权威;
2、西门子官方网站有scl教程,中文版,主要讲了一些学习的要点
3、市面上有本讲西门子stl/scl两种语言编程的书,是翻译老外的,讲的凑合吧,去网上书店搜搜
4、scl软件自带的help文件也可以看看,有网友把help文件翻译成了中文(chm格式),去相关工控论坛搜搜吧
再谈谈scl语言的学习,个人觉得掌握scl语法,如果有basic、c或者pascal高级语言基础的话,一周足矣,但是要真正掌握scl编程的精髓,还需要在实践中摸爬滚打:
1是结合plc的软、硬件实际情况,结合控制系统的要求
2是借鉴计算机高级语言编程的思想,尤其是结构化编程、面向对象编程的思想
❹ 1200的scl起保停程序
1200的scl起保停程序如下:组态设备。打开编程软件STEP7 Basic,单击创建新项目,输入项目名称MOTOR1,单击创建按钮,开始创建项目。
接下来,在入门向导中单击组态设备项,选择添加新设备,单击SIMATIC PLC图标添加一个PLC,在设备树中单击CPU1214C,在显示的该CPU三种不同订货号的产品中,根据实际情况选择CPU。在勾选打开设备视图复选框后,单击视图右下角的添加按钮,则自动进入到项目视图中的设备视图,在打开的设备视图,可以对CPU的信号模块和通信模块进行组态,在此我们不做修改。
然后在进行PLC编程,单击项目视图中左下角的Portal视图,切换到Portal视图,选择PLC编程项,双击对象列表中的Main块,打开项目视图的主程序,进入OB1编辑界面。
拖动工具栏的常开触点到程序段一,输入地址I0.6,拖动常闭触点到程序段一,输入地址I0.7,拖动线圈到程序段一,输入地址Q0.0,拖动常开触点与I0.6并联。
输入地址Q0.0,拖动连线形成闭合通路,这样一个简单的电动机起保停控制程序就编写好了,单击工具栏中的保存项目按钮,保存项目。