请登录 免费注册
分享
  • 微信
  • 新浪微博
  • 人人网
  • QQ空间
  • 开心网
  • 豆瓣
会员服务
进取版 标准版 尊贵版
| 设为首页 | 收藏 | 导航 | 帮助 |
移动端 |
官方微信扫一扫
微信扫一扫
收获行业前沿信息
产品 资讯
请输入产品名称
噪声分析仪 纺织检测仪器 Toc分析仪 PT-303红外测温仪 转矩测试仪 继电保护试验仪 定氮仪
首页 产品 专题 品牌 资料 展会 成功案例 网上展会
词多 效果好 就选易搜宝!
上海渠利自动化科技有限公司
新增产品 | 公司简介
注册时间:2012-02-10
联系人:
电话:
Email:
首页 公司简介 产品目录 公司新闻 技术文章 资料下载 成功案例 人才招聘 荣誉证书 联系我们

产品目录

数控系统维修
西门子数控系统维修
840D/840DSL系统维修
802D/802DSL系统维修
820M/820DSL系统维修
西门子828D系统维修
西门子810D系统维修
西门子808D系统维修
西门子802S系统维修
西门子802C系统维修
西门子PCU50维修
伺服电机维修
西门子伺服电机维修
西门子主轴电机维修
西门子直线电机维修
力士乐伺服电机维修
电主轴电机维修
工控机维修
西门子工控机维修
西门子PC677B维修
西门子PC677C维修
西门子IPC670维修
IPC847C/847D维修
IPC827B/827C维修
IPC647C/647B维修
IPC627C/620维修
IPC577C/577B维修
IPC547D/C/B系列维修
伺服驱动器维修
西门子伺服驱动器维修
西门子S120驱动器维修
6SN1123驱动器维修
6SN1118轴卡维修
FANUC伺服控制器维修
力士乐伺服驱动器维修
电源模块维修
西门子电源模块维修
6SN1145电源模块维修
6SN1146电源模块维修
S120电源模块维修
力士乐电源模块维修
发那科电源模块维修
触摸屏维修
西门子触摸屏维修
MP多功能面板维修
TP触摸屏维修
OP按键控面板维修
西门子C7系列维修
其他品牌触摸屏维修
变频器维修
西门子变频器维修
6SE70变频器维修
MM420变频器维修
MM430变频器维修
MM440变频器维修
其他品牌变频器维修
直流调速器维修
西门子直流调速器维修
6RA70调速器维修
6RA80调速器维修
欧陆直流调速器维修
PLC维修
西门子PLC维修
S7-400维修
S7-300维修
S7-200维修
其他品牌PLC维修
西门子电路板维修销售
其他品牌电路板维修
UPS维修
首页 >>> 技术文章 >

技术文章

西门子几种常见PLC的程序结构及其特点

西门子PLC维修、西门子几种常见PLC的程序结构及其特点

1.某些国外的小型PLC的程序结构

这些PLC的用户程序由主程序、子程序和中断程序组成。在每一个扫描循环周期,CPU都要调用一次主程序。主程序可以调用子程序,小型控制系统可以只有主程序。中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。它们的子程序和中断程序没有局部变量,子程序没有输入、输出参数。


2.西门子的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没有地址冲突,不需作任何改动,就可以将子程序移植到别的项目中去。


3.西门子的S7-300/400的程序结构

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

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

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

功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在指定的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要指定一个背景数据块。功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。

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

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


4.IEC61131-3的程序结构

IEC61131-3是PLC的编程语言标准。IEC61131-3是世界上**个,也是至今为止**的工业控制领域的编程语言标准。IEC

61131-3有三种POU:程序、功能块和功能。

功能是有多个输入参数和一个输出参数(返回值)的POU,返回值的名称与功能的名称相同,需要定义返回值的数据类型。调用具

有相同输入值的功能总是返回相同的结果。功能可以调用其他功能,但是不能调用功能块或程序。功能可定义的局部变量有VAR和VAR_INPUT。

功能块是有多个输入/输出参数和内部存储单元的POU,功能块的输出参数值与其内部存储单元的值有关。功能块可以调用其他功能

块或功能,但是不能调用程序。

在调用功能块之前,必须在要调用功能块的POU中为每次调用声明功能块的实例,操作系统将为每次调用分配功能块专用的存储区

(类似于S7-300/400的背景数据块)。

功能因为没有内部存储区,调用时不需要实例化。

程序的行为和用途类似于功能块,程序具有输入和输出参数,而且可以具有内部存储区。程序通常包含有对功能和功能块的调用。

IEC61131-3定义了若干标准的功能和功能块。


5.S7-300/400与IEC61131-3程序结构的区别

1)S7-300/400的功能可以有多个输出参数,返回值也属于输出参数。IEC61131-3的功能只有一个返回值。

2)IEC61131-3的功能块用于保存局部变量的专用存储区是在声明功能块的实例时分配的,它对用户是不透明的,其他POU不能直接访问该存储区。

S7-300/400的功能块的局部变量(不包括临时变量)保存在它的背景数据块中。其他POU可以访问背景数据块中的变量。如果需要多次调用同一个功能块来控制同一类型的被控对象,每次调用都需要指定一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块。可以使用多重背景数据块来减少背景数据块的数量。但是需要增加一个用来管理多重背景的功能块。

3)S7-300/400的功能块的局部变量有临时变量和静态变量,IEC61131-3的功能块的内部变量Var相当于S7-300/400的静态变量。

4)S7-300/400将数据区划分为数据块来使用,数据块的大小与数据块中定义的变量的数据类型和变量的个数有关。IEC61131-3没有数据块的概念。

上一篇:西门子PLC操作系统的更新方法
下一篇:西门子数控维修实例讲解
            
若网站内容侵犯到您的权益,请通过网站上的联系方式及时联系我们修改或删除