PAGE1
PAGE1
语句表编程
语句表(StatementList,SL)编程是SiemensS7-200系列PLC中的一种编程方法,它使用文本形式的指令来实现逻辑控制。语句表编程类似于汇编语言,每条指令都是一行文本,具有简洁、易读的特点。在很多应用场景中,语句表编程能够高效地实现控制逻辑,特别是在简单的逻辑控制和短小的程序中。
语句表编程基础
1.语句表指令格式
语句表指令通常由以下几个部分组成:
操作数:指令的操作对象,可以是输入、输出、内部标志位、定时器、计数器等。
指令:操作数所执行的具体操作。
注释:对指令的解释和说明,提高代码的可读性。
指令格式如下:
操作数指令(注释)
2.基本指令
2.1装载指令(L)
装载指令将操作数的逻辑状态加载到中间寄存器中,为后续的逻辑操作做准备。
LDI0.0(装载输入I0.0的状态)
2.2逻辑与(AND)
逻辑与指令将中间寄存器中的状态与操作数的逻辑状态进行与操作,并将结果存回中间寄存器。
ANDI0.1(与操作数I0.1的状态进行与操作)
2.3逻辑或(OR)
逻辑或指令将中间寄存器中的状态与操作数的逻辑状态进行或操作,并将结果存回中间寄存器。
ORI0.2(与操作数I0.2的状态进行或操作)
2.4赋值指令(=)
赋值指令将中间寄存器中的状态赋值给输出操作数。
=Q0.0(将中间寄存器中的状态赋值给输出Q0.0)
3.复合逻辑操作
3.1逻辑与非(ANDNOT)
逻辑与非指令将中间寄存器中的状态与操作数的逻辑状态的反状态进行与操作,并将结果存回中间寄存器。
ANDNOTI0.3(与操作数I0.3的反状态进行与操作)
3.2逻辑或非(ORNOT)
逻辑或非指令将中间寄存器中的状态与操作数的逻辑状态的反状态进行或操作,并将结果存回中间寄存器。
ORNOTI0.4(与操作数I0.4的反状态进行或操作)
4.跳转指令
4.1无条件跳转(JMP)
无条件跳转指令将程序的执行跳转到指定的标签处。
JMPL1(跳转到标签L1)
L1:(标签L1)
4.2条件跳转(JC)
条件跳转指令根据中间寄存器的状态决定是否跳转到指定的标签处。
JCL2(如果中间寄存器的状态为1,则跳转到标签L2)
L2:(标签L2)
5.循环指令
5.1循环开始(LBL)
循环开始指令标记一个循环的起点。
LBLL3(标记循环的起点为标签L3)
L3:(标签L3)
5.2循环结束(ENDL)
循环结束指令标记一个循环的终点,并决定是否继续执行循环。
ENDL(循环结束,返回标签L3)
6.定时器和计数器指令
6.1定时器指令(TON,TOF,TP)
定时器指令用于实现时间控制功能,包括接通延时定时器(TON)、断开延时定时器(TOF)和脉冲定时器(TP)。
接通延时定时器(TON)
TONT0,1000(接通延时定时器T0,设定时间为1000毫秒)
断开延时定时器(TOF)
TOFT1,2000(断开延时定时器T1,设定时间为2000毫秒)
脉冲定时器(TP)
TPT2,500(脉冲定时器T2,设定时间为500毫秒)
6.2计数器指令(CTU,CTD,CTUD)
计数器指令用于实现计数功能,包括加计数器(CTU)、减计数器(CTD)和加减计数器(CTUD)。
加计数器(CTU)
CTUC0,10(加计数器C0,设定计数目标为10)
减计数器(CTD)
CTDC1,20(减计数器C1,设定计数目标为20)
加减计数器(CTUD)
CTUDC2,15,5(加减计数器C2,设定计数目标为15,预设值为5)
7.比较指令
比较指令用于比较两个操作数的值,并根据比较结果进行逻辑操作。
等于(=)
=IV0,V1(如果V0等于V1,则中间寄存器状态为1)
不等于()
IV2,V3(如果V2不等于V3,则中间寄存器状态为1)
大于()
IV4,V5(如果V4大于V5,则中间寄存器状态为1)
小于()
IV6,V7(如果V6小于V7,则中间寄存器状态为1)
大于等于(=)
=IV8,V9(如果V8大于等于V9,则中间寄存器状态为1)
小于等于(=)
=IV10,V11(如果V10小于等于V11,则中间寄存器状态为1)
8.数学运算指令
数学运算指令用于对操作数进行基本的数学运算。
加法(+)
+IV12,V13(将V12和V13相加,结果存入