分享

西门子博途SCL应用实践

 机电工控交流 2023-08-15 发布于四川

一、前叙

   西门子编程软件支持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)数学运算符号:加法(+),减法(-),除法(/),乘法(*)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约