第十课,SCL语言的使用规则
一,变量声明
不管是PLC编程还是单片机或者其他高级语言编程,好的编程习惯都是在编程前先创建变量。在PLC编程中梯形图可以先编程后修改变量,而SCL语言则先有变量再在编程时调用变量。创建变量的方法有以下几种:
1, 变量表
变量表是我们最常用和最常见的,PLC输入和输出以及辅助继电器M,都放在变量表。

2, 全局数据块和背景数据块
全局数据块是编程人员手动建立,内部数据可以由用户更改,变量数据可以供所有的程序使用。如下图所示:

背景数据块是调用FB时生成的用于存放FB内部运算数据,背景数据块的数据由FB块的程序结构决定,不可直接更改。如下图所示:

3, 局部变量
局部变量是程序块内部专用变量,局部变量只能在本程序内部使用,可用于程序块与外部连接的端口,也可用于内部数据的存储,局部变量是相对于全局变量而言。

二,赋值
1,赋值的表示方法:“:=”(英文冒号等于号)
2,语句结束必须是一个分号“;”(英文分号)
赋值语句在SCL语言中非常常用,表示后边的数据传送到前面的变量。用法如下图:


以上都属于直接赋值,赋值语句可用来直接赋值,也可以加条件进行赋值。上面的两张图都是直接赋值,常用于数据初始化。下面的图是加条件赋值:

IF语句我们后面会讲到,这是条件语句一种,当条件成立时开始赋值。
三,SCL语言的注释
1, 由于SCL语言属于PLC的高级语言,所以基础不好的编程员不一定能懂SCL语言,而且SCL语言不利于逻辑推理,所以大家在编程的时候要养成一个好习惯,对程序加注释,方便自己查阅,也方便别人维护。
2,注释的写法:“// ”后面写注释。如下图所示:

一, SCL运算符
1,SCL语言的算术运算符:
所谓算术运算符常规的就是加减乘除(+ - * /), 这个在我们编程的时候经常用到。具体用法如下所示:
1>,加法运算 + (如: “A” := “B” + 1;)
2>,减法运算 - (如: "B" := "C" - 1;)
3>,乘法运算 * (如: "C" := "D" * 1;)
4>,除法运算 / (如: "D" := "E" / 1;)
上面的例子中,“B+1”,”C-1”,”D*1”,”E/1”都是属于算术运算符,用于表示两个或者以上的数据的数学运算。
1, SCL语言的关系运算符:
所谓关系运算符就是>,=,<=,<>,这个在我们程序中也经常使用到,具体用法如下所示:
1> 大于 > (当A>B时,C:=100;)
2> 小于<
3> 等于=
4> 大于或等于>=
5> 小于或等于<=
6> 不等于<>
关系运算符通常的用法是表示SCL语句的条件。
比如:当A>B时,C:=100;
这里的A>B就是条件,C:=100就是结果。当BOOL量作为运行条件的时候,通常可以将关系符省略。比如下图“复位按钮”和“设备已经停止”其实都是关系运算符,表达的真正用法是:“复位按钮”=TRUE AND “设备已经停止” = TRUE ,这里先不多说,后面的课程我会详细的讲。
2, SCL语言的逻辑运算符:
逻辑运算符常用于我们的逻辑电路,用我们梯形图来理解就是触点之间的逻辑关系。比如:串联,并联,等等。如下图所示:

1>,非 NOT :NOT表示非,用于常闭触点。
2>,与 AND : AND表示与,用于用于触点或者运算符的串联 。
3>,或 OR : OR表示或;用于运算符的的并联。
4>,异或 XOR : XOR表示异或,由于不易理解,实际编程的时候尽量少用,运算方法可以理解成用不带进位的二进制加法,运用方法如下 (0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0)。