文档详情

施耐德PLC初学者指南-ST指令.doc

发布:2018-09-22约1.81千字共6页下载文档
文本预览下载声明
施耐德PLC初学者入门-ST指令 1.指令 传统的PLC软件编程语言一般仅支持LD/IL/FBD,ST/SFC/CFC往往需要安装附加的语言包才能支持。SoMachine支持全部的6种编程语言,编程者可以根据实际的需要任意选择编程语言。对于SoMachine编程而言,建议编程者在选择编程语言时应根据实际的编程方便来选择编程语言,而不是在整个程序中仅使用LD.例如,编写算法程序时应优先考虑ST,编写顺序流程时应优先考虑SFC,编写逻辑控制时应优先考虑LD,编写功能块时应优先考虑CFC或FBD. MAST任务的选择 建议大家优先选择循环任务 注意: 1) 如果为某个循环任务定义的周期过短,则该任务会在写入输出后立即重复,而不会执行其 他较低优先级的任务或任何系统处理。这将会影响所有任务的执行并导致控制器超过系统看 门狗限制,从而导致系统看门狗例外. 可以使用 GetCurrentTaskCycle 和 SetCurrentTaskCycle 功能通过应用程序获取和设置循环执行任务间隔. 指令优先级 ST语言编写: Eg. 指令说明 1) 赋值指令 变量 := 变量或表达式 例如:Var2:=Var1*10; 2)IF指令 3)IF 条件A THEN 表达式A; END_IF 例如: IF temp17 THEN heating_on := TRUE; END_IF 4)IF 条件A THEN 表达式A; ELSE 表达式B; END_IF 例如: IF temp17 THEN heating_on := TRUE; ELSE heating_on := FALSE; END_IF; 5) IF 条件A THEN 表达式A; ELSIF 条件B THEN 表达式B; ... ELSIF 条件N-1 THEN 表达式N-1; ELSE 表达式N; END_IF 6)CASE指令 语法: CASE 控制变量 OF 数值1: 表达式1 数值2: 表达式2 数值3, 数值4, 数值5: 表达式3 数值6 .. 数值10: 表达式4 ... 数值n: 表达式n ELSE ELSE的表达式 END_CASE 例子: CASE INT1 OF 1, 5: BOOL1 := TRUE; 2: BOOL2 := TRUE; 10..20: BOOL3:= TRUE; ELSE BOOL1 := BOOL2 :=BOOL3 :=FALSE; END_CASE 当INT1=1或5时,BOOL1为真; 当INT1=2时,BOOL2为真; 当INT1=10~20之间的数值时,BOOL3为真; 否则,BOOL1、BOOL2、BOOL3均为假。 7)For指令 语法: FOR 循环控制变量 := 循环开始时变量值 TO 循环结束时变量值{BY 变量递增步长} DO 表达式 END_FOR 其中,{}内语句可根据需要省略,省略时步长默认为1。 例如: FOR Counter:=1 TO 5 BY 1 DO Var1:=Var1*2; END_FOR 8)WHILE循环指令 语法: WHILE 循环条件 表达式 END_WHILE WHILE Counter0 DO Var1 := Var1*2; Counter := Counter-1; END_WHILE 9)Repeat REPEAT 表达式 UNTIL 循环结束条件 END_REPEAT REPEAT 表达式 UNTIL 循环结束条件 END_REPEAT Eg. REPEAT Var1 := Var1*2; Counter := Counter-1; UNTIL Counter=0 END_REPEAT 10) EXIT指令 EXIT用于退出FOR循环、WHILE循环、REPEAT循环。 11) RETURN指令 返回指令,用于根据一定条件退出POU。 12)调用运算快指令 13)局部变量声明: 语法: 标识符 {AT地址}:类型{:=初始化值};其中大括号{}中为可选部分。 例如: kaishi: BOOL; tingzhi AT %MX0.1: BOOL; shuju AT %MW100: INT := 218;
显示全部
相似文档