当前位置:文档之家› S7-300PLC编程技术及基本指令

S7-300PLC编程技术及基本指令


S5T#是16位S5时间常数,格式为S5T#
aD_bH_cM_dS_eMS。其中a,b,c,d,e分别是日、
小时、分、秒和毫秒的数值。输入时可以省掉下划线,
例如S5T#4S30MS=4s30ms,S5T#2H15M30S=2小 时15分30秒。 • C#为计数器常数(BCD码),例如C#250。
状态字Biblioteka 7 边沿检测指令当信号状态变化时就产生跳变沿:从0变到1时,产生一个上升 跳变沿检测的方法是:在每个扫描周期(OB1循环扫描一周),把 当前信号状态和它在前一个扫描周期的状态相比较,若不同,则表 明有一个跳变沿。因此,前一个周期里的信号状态必须被存储,以 便能和新的信号状态相比较。 S7-300/400PLC有两种边沿检测指令:一种是对逻辑串操作 结果RLO的跳变沿检测的指令;另一种是对单个触点跳变沿检测的 指令。
包含在指令中,或者指令的操作数是惟一的。例如: SET AW W#16#117 // 将RLO置1 辑运算
//将常数W#16#117与累加器1进行“与”逻
L 43
//将整数43装入累加器1中
2 存储器直接寻址
存储器直接寻址的特点是直接给出操作数的存储
单元地址。例如
O I0.2
//对输入位I0.2进行“或”逻辑运
• 状态字用于表示CPU执行指令时所具有的状态。某些指令 可否执行或以何种方式执行可能取决于状态字中的某些位,指 令执行时也可能改变状态字中的某些位,可以用位逻辑指令或
字逻辑指令访问并检测状态字。状态字的结构如图所示。
•逻辑操作结果(RLO) 状态字的第1位称为逻辑操作结果(Result of Logic Operation, RLO)。该位存储逻辑操作指令或比较指令的结果。在逻辑串 中,RLO位的状态表示有关信号流的信息,RLO的状态为1,
S7-300/400PLC编程技术及基本指令
编程语言与数据类型
1 编程语言
STEP-7是S7-300/400系列PLC的编程软件。
梯形图、语句表 (即指令表)和功能块图是标准的
STEP-7软件包配备的3种基本编程语言,这3种语言 可以在STEP-7中相互转换。
2 梯形图(LAD)
梯形图是使用得最多的PLC图形编程语言。梯形 图与继电器电路图很相似,具有直观易懂的优点, 特别适合于数字量逻辑控制。梯形图由触点、线圈 和用方框表示的指令框组成。触点代表逻辑输入条 件,例如外部的开关、按钮和内部条件等。线圈通 常代表逻辑运算的结果,常用来控制外部的指示灯、 交流接触器和内部的标志位等。指令框用来表示定 时器、计数器或者数学运算等附加指令。 使用编程软件可以直接生成和编辑梯形图,并将 它下载到PLC。

R Q4.0
= Ml.1
//将输出位Q4.0清“0”
//使Ml.1的内容等于RLO的内容
L Cl
//将计数器Cl中的计数值装入累加
器1
T MW6
//将累加器1中的内容传送给
MW6
3 存储器间接寻址
存储器间接寻址的特点是用指针进行寻址。操作数 存储在由指针给出的存储单元中,根据要描述的地址 复杂程度,地址指针可以是字或双字的,存储指针的 存储器也应是字或双字的。对于T,C,FB,FC, DB,由于其地址范围为0~65535,可使用字指针;
表1 算术运算后的CC1和CC0
表2 比较、移位、字逻辑指令后的CCl和CC0
寻址方式
所谓寻址方式是指指令得到操作数的方式,可以直接或间 接给出操作数的地址。STEP-7有4种寻址方式:立即寻址、存储 器直接寻址、存储器间接寻址和寄存器间接寻址。 1 立即寻址
立即寻址是对常数或常量的寻址方式,其特点是操作数直接
ON:“或非”指令适用于单个常闭触点并联,完成逻辑“或非”运算。
“或”(O)、“或非”(ON)指令
由图可知,触点并联指令也用于一个并联 逻辑行的开始。CPU对逻辑行开始第1条语句 如I4.0的扫描称为首次扫描。首次扫描的结果 (I4.0的状态)被直接保存在RLO(逻辑操作 结果位)中,并和下一条语句的扫描结果相 “或”,产生新的结果再存入RLO中,如此一 次进行。在逻辑串结束处的RLO可用作进一步 处理,如赋值给Q8.0(=Q8.0).
字节MB1O0的地址。字的取值范围为 W#16#0000~W#16#FFFF。
• 4) 双字(Double Word)
• 两个字组成1个双字,双字用来表示无符号数。MD100是由
MB100~MB103组成的1个双字,(见上图),MB100为高位宇节,
D表示双字,100为双字的起始字节MB100的地址。双字的取 值范围为DW#16#0000_0000~DW#16#FFFF_FFFF。
A:“与”指令适用于单个常开触点串联,完成逻辑“与”运 算。 AN:“与非”指令适用于单个常闭触点串联,完成逻辑“与非” 运算。
“与”(A)、“与非”(AN)指令
由图可知,触点串联指令也用于串联逻辑行
的开始。CPU对逻辑行开始第1条语句如I1.0的
扫描称为首次扫描。首次扫描的结果(I1.0的状
态)被直接保存在RLO(逻辑操作结果位)中;
位数据的表示
2)字节(Byte) 8位二进制数组成1个字节(Byte,如下图,其中的第0位为最低位 (LSB),第7位为最高位(MSB)。
• 3)字(Word)
• 相邻两个字节组成一个字,字用来表示无符号数。MWl00是 由MB1OO和MB1O1组成的1个字,如图5.4.3,MB00为高位字
节。MW100中的M为区域标示符,W表示字,100为字的起始
寄存器间接寻址的指针格式
地址指针区域标识位的含义
使用寄器指针格式访问一个字节、字或双字时,必须保证指针中 位地址的编号为0。
下面是区间间接寻址的例子:
L P#5.0
LAR1
//将间接寻址的指针装入累加器1
//将累加器1中的内容送到地址寄存 器1
A M[AR1,P#2.3] //AR1中的P#5.0加偏移量 P#2.3,实际上是对M7.3进行操作 = Q[AR1,P#0.2] //逻辑运算结果送Q5.2 L DBW[AR1,P#18.0] //将DBW23装入累加器 1
•4)功能块图(FBD)
功能块图(FBD)使用类似于布尔代数的图形逻辑 符号来表示控制逻辑。一些复杂的功能用指令框来表 示,功能块图用类似于与门、或门的方框来表示逻辑 运算关系。
•5)结构文本(ST)
结构文本(ST)是为IEC61131-3标准创建的一种 专用的高级编程语言。 STEP-7的S7 SCL(结构化控 制语言)是符合lEC61131-3标准的高级文本语言。它 的语言结构与编程语言Pascal和C相似,所以特别适 合于习惯使用高级编程语言的人使用。
•常数的表示方法
• 常数值可以是字节、字或双字,CPU以二进制方式存储常数, 常数也可以用十进制、十六进制、ASCII码或浮点数形式来表示。
• B#16#,W#16#,DW#16#分别用来表示十六进制 字节、字和双字常数。2#用来表示二进制常数,例如 2#1101_1010。 L#为32位双整数常数,例如L# +5。 P#为地址指针常数,例如P#M2.O是M2.0的地址。
举例。
4、中间输出
如图所示,中间输出指令被安置在逻辑串中间,用于将其前面
的位逻辑操作结果(即本位置的RLO值)保存到指定地址,所以 有时也称为“连接器”或“中间赋值元件”。它和其他元件串联 时,“连接器”指令和触点一样插入。连接器不能直接连接母线, 也不能放在逻辑串的结尾或分支结尾处。
5 置位指令、复位指令
触点和线圈等组成的独立电路称为网络(Network),如下图所 示,编程软件自动为网络编号。
梯形图中的触点和线圈可以使用物理地址,例如I0.1, Q0.3等。如果在符号表中对某些地址定义了符号,例如令I0.1的
符号为“起动”,在程序中可用符号地址“起动”来代替物理
地址I0.0,这样使程序易于阅读和理解。 用户可以在网络号右边加上网络的标题,在网络号的下面 为网络加上注释。还可以选择在梯形图下面自动加上该网络中 使用的符号的信息。 在分析梯形图中的逻辑关系时,为了借用继电器电路图的 分析方法,可以想象在梯形图的左有两侧垂直“电源”之间有 一个左正右负的直流电源电压,有一个假想的“能
表明有信号流 (通),RLO的状态为0,表明无信号流(断)。可
用RLO触发跳转指令。 •溢出位(OV) • 状态字的第4位称为溢出位。当算术运算或浮点数比较指 令执行时出现错误(溢出、非法操作、不规范格式)时,OV位
被置1,如果执行结果正常,该位被清0。
条件码l(CCl)和条件码0(CC0)
状态字的第7位和第6位称为条件码1和条件码0。这两位结合 起来用于表示在累加器1中产生的算术运算结果与0的大小关系,
流”(PowerFlow)流过线圈。利用能流这一概念,可以很好地理
解和分析梯形图,能流只能从左向右流动。
3 语句表(STL)
S7系列PLC将指令表称为语句表
(Statement List),它是一种类似于微机的汇
编语言中的文本语言,多条语句组成一个程 序段。语句表比较适合经验丰富的程序员使 用,可以实现某些不能用梯形图或功能块图 表示的功能。
对于I,Q,M等,可能要使用双字指针。使用双字指
针时,必须保证指针中的位编号为“0”。存储器间接 寻址的指针格式如图所示。
存储器间接寻址的指针格式
例 存储器间接寻址的指针格式及寻址 L +6 T WM1 OPN T MD5 //将整数6装入累加器1 //将累加器1的内容传送给存储器
MWl
//打开由MWl指出的数据块,即打开 数据块DB6 //将累加器1的内容传送到存储器 MD5
置位/复位指令也是一种输出指令。使用置位指令时,如果 RLO=1,则指定的地址被置为1,而且一直保持,直到被复位为 0。使用复位指令时,如果RLO=1,则指定的地址被复位为0, 而且一直保持,直到被置位为1,如图所示。
相关主题