点击【 大 中 小 】, 可 以 选 择 字 体的大小,以便 你 阅读.
1、SCL程序可以在CPU314及其以上的S7(包括400)中运行。
2、SCL程序创建在”S7 Program”-”Sources”下面。
S7-Program
-Blocks(e.g. FB,OB)
-Sources(e.g.SCL source file)
-Symbols
3、 程序结构
FB: FUNCTION_BLOCK fb_name
END_FUNCTION_BLOCK
FC: FUNCTION fc_name:function type
END_FUNCTION
OB: ORGANIZATION_BLOCK ob_name
END_ORGANIZATION_BLOCK
DB: DATA_BLOCK db_name
END_DATA_BLOCK
UDT TYPE udt_name
END_TYPE
4、 属性定义和程序注释
例如:
FUNCTION_BLOCK FB10
//This is a block comment.
TITLE = ’Mean_Value’
VERSION : ’2.1’
KNOW_HOW_PROTECT
AUTHOR : AUT_1
5、 变量定义
Data Syntax FB FC OB DB UDT
Constants CONSTdeclaration listEND_CONST X X X
Labels LABELdeclaration listEND_LABEL X X X
Temporary Variables VAR_TEMP declaration listEND_VAR X X X X X X
Static variables VARdeclaration listEND_VAR X X X X X
Input parameters VAR_INPUTdeclaration listEND_VAR X X
Output parameters VAR_OUTPUTdeclaration listEND_VAR X X
In/out parameters VAR_IN_OUTdeclaration listEND_VAR X X
6、FC结构
FUNCTION FC11: REAL//如果不需要返回值,用VOID关键字
VAR_INPUT
x1: REAL ;
x2: REAL ;
x3: REAL ;
x4: REAL ;
END_VAR
VAR_OUTPUT
Q2: REAL ;
END_VAR
BEGIN
// Return value from function
FC11:= SQRT( (x2 - x1)**2 + (x4 - x3) **2 ) ;
Q2:= x1 ;
END_FUNCTION
7、自己写了一个简单的程序
OB1:
FC1用SCL编写:
FUNCTION fc1:INT
VAR_INPUT
a:INT;
END_VAR
begin
fc1:=a+10;
end_FUNCTION
运行后:每次m0.0从0变1,就调用FC1一次,mw18里面的数据加10。
问题:SCL如何调用其他SCL以及用LAD等编写的程序?
写一个有循环、判断等基本语句组成的程序。
参数使用问题?(直接使用实际地址?参数传递问题)
如何在线调试SCL程序(debug)