一、前叙 西门子编程软件支持LAD、FBD、 STL、 GRAPH、SCL等语言,我们常用的主要是LAD,因它编程容易,直观,便于查看问题,与电气回路最为接近,当时在处理数据算法方面或者编写功能或功能块方面,用STL或SCL更为方便和紧凑。 对于有一定计算机语言基础的自动化工程师来说,用SCL(Structured Contorl Language)更为顺手。 SCL的程序控制指令主要包含: (1)条件执行: IF....THEN...END_IF; (2)多分支选择: CASE 变量 OF < 常数1>: <执行逻辑1>; <常数2>: <执行逻辑2>; <常数X>: <执行逻辑3>;; // X >= 3 ELSE< 执行逻辑0>; END_CASE; (3)在计数循环中执行:FOR FOR <变量> := <开始值> TO <结束值> BY <增量常数> DO <逻辑>; END_FOR; (4)满足条件时执行:WHILE WHILE <条件> DO <逻辑1>; END_WHILE; (5)构建程序代码:REGION REGION <名称> <指令> END_REGION 二、案例 2.1 模拟量输入标准化 //单极性 //读取PIW通道数值,判断数值是否异常 IF #IN_UINT >= 0 AND #IN_UINT <= 27648 THEN #Err := 0; #IN1_REAL := NORM_X(MIN := #MIN, VALUE := #IN_UINT, MAX := #MAX);//转换标准化值 ELSE //,若异常则将错误字写1,不在量程范围内输出为0; #Err := 1; #IN1_REAL := 0.0; END_IF; #OUT_REAL := SCALE_X(MIN := #Lower, VALUE := #IN1_REAL, MAX := #Upper); 程序调用: 2.2 设备控制功能块 程序调用: 三、结论 (1)注意赋值的格式为一个冒号+等号 【:=】; (2)位逻辑指令: 取反指令(NOT);与运算指令(AND); 或运算指令(OR) 异或指令(XOR) (3)数学运算符号:加法(+),减法(-),除法(/),乘法(*) |
|