- 西门子S7-400 PLC快速入门与提高实例
- 吴文涛主编
- 3562字
- 2020-09-01 12:10:58
第2章 S7-400编程语言及指令
2.1 S7-400的编程语言
2.1.1 PLC编程语言的国际标准
IEC(国际电工委员会)是为电子技术的所有领域制定全球标准的世界性组织。IEC 61131是PLC的国际标准,1979年成立了IEC 61131工作组,1992~1995年发布了IEC 61131标准中的1~4部分,我国在1995年11月发布了GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。
IEC 61131由以下五部分组成:
(1)通用信息 定义PLC的术语,PLC的主要功能和特点,包括典型的PLC中一般概念的定义和功能特征,例如用户程序的循环处理、输入输出过程映像,以及编程设备、PLC和人机接口的分工。
(2)设备要求与测试 具体说明对PLC电气、机械和功能的要求,以及对产品的检验方法,对下述各项指标都作了要求:温度、湿度、供电范围、接口保护,数字量信号的工作范围,以及机械应力等。
(3)编程语言 通过对词汇、句法和语义的描述和例子,定义了PLC的软件模型,编程语言的标准和5种编程语言:梯形图、功能块图、指令表、顺序功能图和结构化文本。
(4)用户指南 作为一个指南,对从事自动项目的各阶段的用户提供帮助,从系统分析开始,到具体化阶段,例如PLC的选择与应用,安全和保护,安装与维护。
(5)通信服务规范 描述了不同厂商生产的PLC之间,PLC与其他设备之间的通信,包括设备功能选择、数据交换、报警处理、访问控制与网络管理、通信模式、通信块、与ISO协议的对应关系等。
其中的第三部分(IEC 61131-3)是PLC的编程语言标准,它鼓励不同的PLC制造商提供在外观和操作上相似的指令。IEC 61131-3标准使用户在使用新的PLC时可以减少重新培训的时间;对于生产厂家,使用标准将减少产品开发的时间,可以投入更多的精力去满足用户的特殊要求。
由于IEC 61131-3自动化编程语言的诸多优点,它已成为自动化工业中拥有广泛应用基础的国际标准,已有越来越多的PLC厂家提供符合IEC 61131-3标准的产品,世界上著名的自动化设备制造商,例如西门子、罗克威尔、ABB、施耐德、GE、三菱、富士等公司都推出了不同程序与IEC 61131-3兼容的产品,不仅限于PLC,IEC 61131-3还广泛地应用于集散控制系统(DCS)和工业控制计算机、在个人计算机上运行的软件PLC软件包、数控系统、远程终端单元等产品。
IEC 61131-3包括以下内容:
①编译为标准代码的规则:定义了PLC必须满足IEC 61131标准的哪些要求。在文献中必须包含一个符合标准的声明,或者系统必须生成一个这样的声明。
②软件模型、通信模型和编程模型。
③可编程逻辑控制语言中的通用元件,例如数据类型和变量、功能和功能块、程序和任务。
④句法、语义和下述5种编程语言(见图2-1):
a.指令表IL(Instruction List):语言语义的定义,这里只定义了20种基本操作。
b.结构文本ST(Structured Text):西门子称为结构化控制语言(SCL)。
c.梯形图LD(Ladder Diagram):西门子简称为LAD。
d.功能块图FBD(Function Block Diagram):标准中称为功能方框图语言。
e.顺序功能图SFC(Sequential Function Chart):对应于西门子的S7 Graph。
图2-1 PLC的编程语言
⑤附加的语法规则和编程实例。标准中有两种图形语言——梯形图和功能块图,还有两种文字语言——指令表和结构文本,可以认为顺序功能图是一种结构块控制程序流程图。
2.1.2 STEP7中的编程语言
STEP7是S7-300/400系列PLC的编程软件。梯形图、语句表(即指令表)和功能块图是标准的STEP7软件包配备的3种基本编程语言,这3种语言可以在STEP7中相互转换,STEP7还有多种编程语言可供用户选用,但是在购买软件时对可选的部分需要附加的费用。
(1)顺序功能图(SFC) 这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序。
STEP7中的S7 Graph顺序控制图形编程语言属于可选的软件包。在这种语言中,工艺过程被划分为若干个顺序出现的步,步中包含控制输出的动作,从一步到另一步的转换由转换条件控制,用Graph表达复杂的顺序控制过程非常清晰,用于编程及故障诊断更为有效,使PLC程序的结构更加易读,它特别适合于生产制造过程。S7 Graph具有丰富的图形、窗口和缩放功能。系统化的结构和清晰的组织显示使S7 Graph对于顺序过程的控制更加有效。
(2)梯形图(LAD) 梯形图是使用得最多的PLC图形编程语言。梯形图与继电器电路图很相似,具有直观易懂的优点,很容易被工厂熟悉继电器控制的电气人员掌握,特别适合于数字量逻辑控制,有时把梯形图称为电路或程序。
梯形图由触点、线圈和用方框表示的指令框组成。触点代表逻辑输入条件,例如外部的开关、按钮和内部条件等。线圈通常代表逻辑运算的结果,常用来控制外部的指示灯、交流接触器和内部的标志位等。指令框用来表示定时器、计数器或者数学运算等附加指令。
使用编程软件可以直接生成和编辑梯形图,并将它下载到PLC。
触点和线圈等组成的独立电路称为网络(Network),见图2-2,编程软件自动为网络编号。
梯形图中的触点和线圈可以使用物理地址,例如I0.2、Q1.3等。如果在符号表中对某些地址定义了符号,例如令I0.0的符号为“启动”,在程序中可用符号地址“启动”来代替物理地址I0.0,使程序易于阅读和理解。
用户可以在网络号的右边加上网络的标题,在网络号的下面为网络加上注释。还可以选择在梯形图下面自动加上该网络中使用的符号的信息(Symbol Information)。
如果将两块独立电路放在同一个网络内,将会出错。本书为节约篇幅,在插图中梯形图左右两侧垂直“电源线”之间有一个左正右负的直流电源电压,当图2-2网络1中I0.0与I0.1的触点同时接通,或Q4.0与I0.1的触点同时接通时,有一个假想的“能流”(Power Flow)流过Q4.0的线圈。利用能流这一概念,可以帮助我们更好地理解和分析梯形图,能流只能从左向右流动。
如果没有跳转指令,在网络中,程序中的逻辑运算按从左往右的方向执行,与能流的方向一致。网络之间按从上到下的顺序执行,执行完所有的网络后,下一次循环返回最上面的网络(网络1)重新开始执行。
(3)语句表(STL) S7系列PLC将指令表称为语句表(Statement List),它是一种类似于微机的汇编语言中的文本语言,多条语句组成一个程序段。语句表比较适合经验丰富的程序员使用,可以实现某些不能用梯形图或功能块图表示的功能。
(4)功能块图(FBD) 功能块图(FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑。一些复杂的功能(例如数学运算功能等)用指令框来表示,有数字电路基础的人很容易掌握。功能块图用类似于与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框被导线连接在一起,信号自左向右流动。图2-4中的控制逻辑和图2-2的控制逻辑与图2-2和图2-3中的相同。西门子公司的“LOGO!”系列微型PLC使用功能块图编程,除此之外,国内很少有人使用功能块图语言。
图2-2 梯形图
图2-3 语句表
图2-4 功能块图
(5)结构文本(ST) 结构文本(ST)是为IEC 61131-3标准创建的一种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。
STEP7的S7 SCL(结构化控制语言)是符合IEC 61131-3标准的高级文本语言。它的语言结构与编程语言Pascal和C相似,所以特别适合于习惯使用高级编程语言的人使用。
SCL适合于复杂的公式计算和最优化算法,或管理大量的数据等。
(6)S7 HiGraph 图形编程语言S7 HiGraph属于可选软件包,它用状态图(State Graphs)来描述异步、非顺序过程的编程语言。系统被分解为几个功能单元,每个单元呈现不同的状态,各功能单元的同步信息可以在图形之间交换。需要为不同状态之间的切换定义转换条件,用类似于语句表的语言描述指定状态的动作和状态之间的转换条件。
(7)S7 CFC编程语言 可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中的以块的形式提供的各种功能,包括从简单的逻辑操作到复杂的闭环和开环控制等领域。编程时将这些块复制到图中并用线连接起来即可。
不需要用户掌握详细的编程知识以及PLC的专门知识,只需要具有行业所必需的工艺技术方面的知识,就可以用CFC来编程。
(8)编程语言的相互转换与选用 在STEP7编程软件中,如果程序块没有错误,并且被正确地划分为网络,在梯形图、功能图和语句表之间可以转换,用语句表编写的程序不一定能转换为梯形图,不能转换的网络仍然保留语句表的形式,但是并不表示该网络有错误。
语句表可供习惯用汇编语言编程的用户使用,在运行时间和要求的存储空间方面最优。语句表的输入方便快捷,还可以在每条语句的后面加上注释,便于复杂程序的阅读和理解。在设计通信、数学运算等高级应用程序时建议使用语句表。
梯形图与继电器电路图的表达方式极为相似,适合于熟悉继电器电路的用户使用。语句表程序较难阅读,其中的逻辑关系很难一眼看出,在设计和阅读有复杂的触点电路的程序时最好使用梯形图语言。
功能块图适合于熟悉数字电路的用户使用。
S7 SCL编程语言适合于熟悉高级编程语言(例如Pascal或C语言)的用户使用,合适于数据处理程序。
S7 Graph、HiGraph和CFC可供有技术背景,但是没有PLC用户使用。S7Graph对顺序控制过程的编程非常方便,HiGraph适合于异步非顺序过程的编程,CFC适合于连续过程控制的编程。
(9)S7-PLCSIM仿真软件 即使没有PLC的硬件,使用S7-PLCSIM仿真软件也可以在计算机上对SIMATIC S7用户程序块进行功能测试,它对于用户程序的调试和PLC编程的学习是非常有用的。
它可以用于用下列语言编写的程序的仿真:LAD、FBD、STL、S7 Graph、S7 HiGraph、S7 SCL和CFC。