施耐德PLC的ST指令入门
- 格式:doc
- 大小:238.50 KB
- 文档页数:5
施耐德M340PLC培训教材•PLC基础知识•施耐德M340PLC硬件系统•施耐德M340PLC软件系统•基本指令与功能实现目录•高级功能应用与扩展•故障诊断与维护保养策略01PLC基础知识PLC定义与发展历程PLC定义可编程逻辑控制器(Programmable Logic Controller,PLC)是一种数字运算操作的电子系统,专为在工业环境下应用而设计。
发展历程从1969年美国DEC公司研制出第一台PLC开始,经过几十年的发展,PLC已经由最初的逻辑控制扩展到运动控制、过程控制等领域,成为工业自动化领域的重要组成部分。
PLC工作原理及结构组成工作原理PLC采用循环扫描的工作方式,通过输入接口采集现场信号,经过内部处理后再通过输出接口控制现场设备。
结构组成主要包括CPU、存储器、输入输出接口、电源等部分。
其中,CPU是PLC的核心部件,负责执行用户程序;存储器用于存储用户程序和数据;输入输出接口用于连接现场设备和PLC内部电路;电源为PLC提供工作电压。
PLC编程语言与标准编程语言PLC的编程语言主要有梯形图(LD)、指令表(IL)、功能块图(FBD)、顺序功能图(SFC)和结构化文本(ST)五种。
其中,梯形图是最常用的编程语言,具有直观易懂的优点。
标准国际电工委员会(IEC)制定了PLC的编程语言和通信标准,即IEC 61131-3标准。
该标准规定了PLC编程语言的语法、语义和显示方式,以及PLC之间通信的协议和规范,为不同厂商生产的PLC 提供了统一的编程和通信接口。
02施耐德M340PLC硬件系统CPU 模块内存模块通信模块提供大容量存储空间,支持程序和数据的高效存储。
支持多种通信协议,实现与其他设备的可靠通信。
0302 01采用高性能处理器,实现快速逻辑运算和数据处理。
可根据需求添加扩展模块,实现更多功能。
体积小巧,节省安装空间。
采用工业级元器件,确保长时间稳定运行。
支持在线诊断和远程维护,降低维护成本。
【独家】ST语言入门基础语法,初学者看过来!随着PLC不断的发展,编程语言的提高,越来越多的自动化工程师开始使用ST语言,那么ST语言难吗?今天和大家分享一下ST语言基础语法,希望能帮助大家。
赋值首先我们了解一下ST语言中的赋值,从名词解释角度来看,赋值等于给某个东西一个“值”,这个值可以是数字,也可以是其他的内容;先看下图:在编程软件(左图)输入D0:= 10;D2:=12;D4:= D0 +D2;通过仿真(右图)可以查看到,D0的值为10;D2的值为12;D4的值为22;梯形图中展示效果,如下图:由此可以看出,在三菱ST语言中,对软元件或变量赋值,采用冒号+等于号的方式,即::= ;D0:= 10;D2:=12;就是给数据寄存器D0、D2赋值(也可以理解成传递一个数值);不过在使用中要注意冒号为英文输入状态下的冒号【:中文】【:英文】大家可以对比一下区别。
结束符在赋值中可以看到,当我们写完一行完整的程序内容后,想继续执行下一个动作,需要用到英文状态下的分号“;”。
如下图:在给D0赋值完成后,忘记输入分号,按下F4编译,软件会提示语法错误,程序会认为第一行和第二行为一行程序内容,不符合ST语言语法规则,会爆语法错误;所以在编写程序时别忘记分号哦!四则运算在数学中,我们常接触加减乘除,实际在ST语言中也有,它们都有对应的符号加(+)减(-)乘(*)除(/),话不多说,直接上图ST语言实现四则运算截图梯形图实现四则运算截图由上图可以看到,ST语言中,四则运算相对而言简单很多,不过值得注意的是:在运算中,数据类型必须统一;关于数据类型,查看手册。
程序注释说明在ST语言中,如果编写的程序过于复杂,可以通过注释方式说明程序段内容,注释方式为(**),默认显示绿色,可以在程序任意位置添加;如下图:通过注释,我们可以把程序进行分段,标注明每段程序的内容,以便后期修改或检查程序。
施耐德PLC的ST指令入门
1.编程语言
传统的PLC软件编程语言,一般仅支持LD/IL/FBD,ST/SFC/CFC,往往需要安装附加的语言包才能支持。
SoMachine支持全部的6种编程语言,编程者可以根据实际的需要,任意选择编程语言。
对于SoMachine编程而言,建议编程者在选择编程语言时,应根据实际的编程方便来选择编程语言,而不是在整个程序中仅使用LD。
例如,编写算法程序时应优先考虑ST;编写顺序流程时应优先考虑SFC;编写逻辑控制时应优先考虑LD;编写功能块时应优先考虑CFC或FBD。
各品牌PLC的编程语言大同小异,各有特色。
了解了一个品牌的编程语言,其他品牌的也就能掌握基本的功能。
2.MAST任务的选择
建议优先选择循环任务
注意:
1) 如果为某个循环任务定义的周期过短,则该任务会在写入输出后立即重复,而不会执行其他较低优先级的任务或任何系统处理。
这将会影响所有任务的执行,并导致控制器超过系统看门狗限制,从而导致系统看门狗例外。
2)可以使用 GetCurrentTaskCycle 和 SetCurrentTaskCycle 功能通过应用程序获取和设置循环执行任务间隔.
3.指令优先级
4.ST语言编写:
指令说明
注意各指令的标点符号及标点符号的输入格式。
1)赋值指令
变量 := 变量或表达式
例如:Var2:=Var1*10;
2)IF指令
1.IF 条件A
THEN 表达式A;
END_IF
例如:
IF temp<17
THEN heating_on := TRUE;
END_IF
2. IF 条件A
THEN 表达式A;
ELSE 表达式B;
END_IF
例如:
IF temp<17
THEN heating_on := TRUE;
ELSE heating_on := FALSE;
END_IF;
3. IF 条件A THEN 表达式A;
ELSIF 条件B THEN 表达式B;
...
ELSIF 条件N-1 THEN 表达式N-1;
ELSE 表达式N;
END_IF
3)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均为假。
4)For指令
语法:
FOR <循环控制变量> := <循环开始时变量值> TO <循环结束时变量值>{BY <变量递增步长>}
DO <表达式>
END_FOR
其中,{}内语句可根据需要省略,省略时步长默认为1。
例如:
FOR Counter:=1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR
5)WHILE循环指令
语法:
WHILE <循环条件>
<表达式>
END_WHILE
WHILE Counter<>0 DO
Var1 := Var1*2;
Counter := Counter-1;
END_WHILE
6)Repeat
REPEAT <表达式>
UNTIL <循环结束条件>
END_REPEAT
REPEAT <表达式>
UNTIL <循环结束条件>
END_REPEAT
Eg.
REPEAT
Var1 := Var1*2;
Counter := Counter-1;
UNTIL
Counter=0
END_REPEAT
7) EXIT指令
EXIT用于退出FOR循环、WHILE循环、REPEAT循环。
8) RETURN指令
返回指令,用于根据一定条件退出POU。
9)调用运算快指令
10)局部变量声明:
语法:
<标识符> {AT<地址>}:<类型>{:=<初始化值>};其中大括号{}中为可选部分。
例如:
kaishi: BOOL;
tingzhi AT %MX0.1: BOOL;
shuju AT %MW100: INT := 218;。