• 正文
    • 1.西门子PLC程序的结构形式
    • 2.西门子PLC程序编写规范要点
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

西门子PLC程序的结构形式 西门子PLC程序编写规范要点

03/17 10:15 作者:eefocus_3880508
276
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

所谓PLC的程序结构,就是组成PLC程序的各种网络(Network)或“功能程序段”在PLC内部的组织、管理形式。无论PLC控制系统有多么复杂,归根到底,PLC用户程序都是由大量基本编程指令所组成的集合。接下来小编给大家介绍一下西门子PLC程序的结构形式以及西门子PLC程序编写规范要点。

1.西门子PLC程序的结构形式

1、西门子S7-200的程序结构

过程映像输入/输出(I/Q)、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量。S7-200的程序组织单元(ProgramOrganizaTIonalUnit,简称为POU)包括主程序子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。

下面是子程序可以使用的局部变量:

1、TEMP(临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。

2、IN是由调用它的POU提供的输入参数。

3、OUT是返回给调用它的POU的输出参数(子程序的执行结果)。

4、IN_OUT是输入_输出参数,其初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。

主程序和中断程序的局部变量中只有临时变量TEMP。

具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。这些厂家的编程人员为设备的各组件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以通过程序之间的调用快速“组装”出满足不同用户要求的控制程序。就好像用数字集成电路芯片组成复杂的数字电路一样。

子程序如果没有输入、输出参数,它和调用它的程序之间没有清晰的接口,很难实现结构化编程。

子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将子程序和中断程序移植到别的项目时,需要重新统一安排它们使用的全局变量,以保证不会出现地址冲突。当程序很复杂,子程序和中断程序很多时,这种重新分配地址的工作量非常大。

如果子程序和中断程序有局部变量,并且它们内部只使用局部变量,不使用全局变量,因为与其他POU没有地址冲突,不需作任何改动,就可以将子程序移植到别的项目中去。

2、西门子的S7-300/400的程序结构

S7-300/400将子程序分为功能(FuncTIon,或称为函数)和功能块(FuncTIonBlock)。

S7-300/400的功能与S7-200的子程序基本上相同。它们均有输入、输出参数和临时变量,功能的局部数据中的返回值实际上属于输出参数。它们没有专用的存储区,功能执行结束后,不再保存临时变量中的数据。

可以用全局变量来保存那些在功能执行结束后需要保存的数据,但是会影响到功能的可移植性。

功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在指定的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要指定一个背景数据块。(今天的转发暗号是:亿维公司口号:信赖,源自品质;信任,铸就品牌)功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。

功能块采用了类似于C++++的封装的概念,将程序和数据封装在一起,具有很好的可移植性。

S7-300/400的共享数据块可供所有的逻辑块使用。

西门子PLC程序的结构形式 西门子PLC程序编写规范要点

2.西门子PLC程序编写规范要点

1、项目:用汉语拼音或汉字命名项目。

2、工作站:项目中的每个工作站都以汉语拼音或汉字命名。

3、Block:尽可能使用结构化编程。块的符号名用汉字概括了块的主要功能,块的注释用汉字详细描述了功能和主要编程思想。

程序块中的每个段落都可以添加一个网络注释,必要时可以使用汉字来描述段落程序的功能。如果程序只能用STL语言描述,则尽可能在每个STL语句后添加相应的汉字描述,以帮助阅读。

4、符号:I、Q、M、FC、FB、OB、T、C等符号、注释、数据类型。定义在其中。

为了方便观看节目,符号名称的定义如I、Q、M、T、C等。应该简洁明了,容易查找,但至少应该包括定义对象的名称和功能,中间用下划线“_”隔开,比如电机M202故障用M定义,应该是M202_fault或者M202_ fault。

在符号注释中描述符号定义的具体用途。

某个功能中涉及的符号尽可能集中定义。

5、数据块(DB):程序中使用的数据块中的数据,如位、字、浮点数等。,只能在数据块中定义后使用。数据名称的定义要简洁明了,但至少要包含定义对象的名称和功能,用下划线“_”隔开。

描述数据注释中名称定义的具体用途。

6、程序锁定:被锁定的程序块必须将其源程序保存在源程序(源代码)中。

7、7中使用的变量:PLC程序必须说明,每个用户程序必须附有变量和符号的命名说明,以及用户程序的整体设计思路。

8、注释:程序中的关键程序、例程、技巧、新系统、相对独立的子程序(函数)都要详细注释(思路、逻辑关系、每个句子、上下文等)。),同时,“知识库文档”应独立分类归档。

9、变更:如有更新或变更,请注明原因、变更内容(详细备注)、结果、变更人及日期等。同时,单独的文件被添加到这个类的文件中。

 

相关推荐

电子产业图谱