step7是与西门子公司simatic s7系列plc相配套的支持用户开发应用程序的软件包,在step7中,s7系列plc的编程语言非常丰富,有lad(梯形图),stl(语句表),scl(标准控制语言),graph(顺序控制),higraph(状态图),cfc(连续功能图),c for s7(c 语言)等,用户可以选择一种语言编程,如果需要,也可混合使用几种语言编程。这些编程语言都是面向用户的,它使控制程序的编写工作大大简化,对用户来说,开发、输入、调试和修改程序极为方便。本文主要介绍常用的语句表和梯形图编程语言。step7标准软件包支持这两种编程语言的互相转换。语句表和梯形图语言是一个完备的指令系统,支持结构化编程方法。指令系统包括二进制操作、数字运算、组织功能和功能块编程等。二进制操作又称为位逻辑操作,它可以对二进制操作数的信号进行扫描并完成逻辑运算。
西门子s7-300系列plc的基本指令系统包括位逻辑指令、定时器与计数器指令、数据处理功能指令、数据运算指令和控制指令。
一、指令及其结构
指令时程序的小独立单元,用户程序是由若干条顺序排列的指令构成的。对应语句表和梯形图两种编程语言,指令也有语句指令与梯形逻辑指令之分。他们的表达形式不同,但表示的内容是相同或类似的。
1、指令的组成
1)语句指令
一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码定义要执行的功能,它告诉cpu该做什么;操作数为执行该操作所需要的信息,它告诉cpu用什么去做。有些语句指令不带操作数,它们操作的对象是惟一的。
2)梯形逻辑指令
梯形逻辑指令用图形元素表示plc要完成的操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象地表明cpu做什么,其操作数的表示方法与语句指令相同。梯形逻辑指令也可不带操作数。
2、操作数
1)标识符及表示参数
指令的操作数一般位于plc的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符告诉处理器操作数放在存储器的哪个区域及操作数位数;标识参数则进一步说明操作数在该存储区域内的具体位置。
操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。若没有辅助标识符,则指操作数的位数是1位。
主标识符有i(输入过程映像存储区)、q(输出过程映像存储区)、m(位存储区)、pi(外部输入)、pq(外部输出)、t(定时器)、c(计数器)、db(数据块)、l(本地数据)等;辅助标识符有x(位)、b(字节)、w(字——2字节)、d(双字——4字节)。plc物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开,如m 10.1。当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的低字节单元号。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。图1给出了字节、字、双字的相互关系及表示方法。
图1 以字节单元为基准标记存储器存储单元
s7 plc的存储区及其功能见表7-4,表中给出的大地址范围不一定是实际可使用的地址范围,可使用的地址范围由cpu得型号和硬件配置决定。
表1 存储区及其功能
2)操作数的表示方法
在step7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法,二是符号地址表示法。用物理地址表示操作数时,要明确指出操作数所在的存储区,该操作数的位数和具体位置。例如,q4.0是用物理地址表示的操作数,其中q表示这是一个在输出过程映像区中的输出位,具体位置是第4个字节的第0位。
step7允许用符号地址表示操作数,如q4.0可用符号名motor_on替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。