介绍以下常见的plc程序结构及其特点:
  
  1.国外一些小型可编程控制器程序结构
  
  这些可编程逻辑控制器的用户程序由主程序、子程序和中断程序组成。在每个扫描周期中,CPU调用主程序一次。主程序可以调用子程序,小控制系统只能有主程序。中断程序用于快速响应中断事件。在中断事件中
  
  当这种情况发生时,中央处理器将停止执行当时正在处理的程序或任务,并执行用户编写的中断程序。执行中断程序后,继续执行暂停的程序或任务。它们的子程序和中断程序没有局部变量,子程序没有输入输出参数。
  
  2.西门子S7-200的程序结构
  
  处理图像输入/输出(I/Q)、可变内存V、内存位M、定时器T、计数器C等。属于全局变量。S7-200程序组织单元(POU)包括主程序、子程序和中断程序。每个POU都有一个。
  
  它自己的64字节局部变量,只能在其POU中使用。相反,全局变量可以用于每个POU。
  
  以下是子程序可以使用的局部变量:
  
  1)TEMP(临时变量)是临时存储在本地数据区的变量。只有当执行POU时,才能使用定义的临时变量。执行POU之后,临时变量的值将不会被保存。
  
  2)输入是由调用它的POU提供的输入参数。
  
  3)OUT是返回给调用它的POU的输出参数(子程序的执行结果)。
  
  4)IN_OUT是一个input _ output参数,其初始值由调用它的POU传递给子程序,子程序的执行结果以相同的变量返回给调用它的POU。
  
  主程序和中断程序的局部变量中只存在临时变量temp。
  
  带有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产类似设备或生产线的厂家尤其有用。这些制造商的程序员为设备的每个部件或过程功能编写了大量的通用子程序。即使你不知道子程序
  
  只要知道子程序的功能和输入输出参数的含义,就可以通过程序之间的调用,快速“组装”出满足不同用户需求的控制程序。就像用数字集成电路芯片组成复杂的数字电路。
  
  如果一个子程序没有输入输出参数,与调用它的程序之间没有明确的接口,就很难实现结构化编程。
  
  如果子程序没有局部变量,只能通过全局变量与调用它的程序交换数据,子程序内部只能使用全局变量。将子程序和中断程序移植到其他项目时,需要重新排列它们使用的全局变量,以确保不会有地址冲突。当程序非常复杂,有很多子程序和中断程序时,重新分配地址的工作量非常大。
  
  如果子程序和中断程序都有局部变量,并且内部只使用局部变量,不使用全局变量,因为与其他pou没有地址冲突,那么子程序可以移植到其他项目中,而不需要做任何更改。
  
  3.西门子S7-300/400的程序结构
  
  S7-300/400将子程序分为功能和功能块。
  
  S7-300/400的功能与S7-200基本相同。它们都有输入、输出参数和临时变量,函数局部数据中的返回值实际上属于输出参数。他们没有专门的存储区。函数完成后,临时变量中的数据将不被保存。全局变量可以用来保存函数完成后需要保存的数据,但是会影响函数的可移植性。功能块是由用户用其自己的专用存储区(即后台数据块)编写的程序块。功能块的输入和输出参数以及静态变量存储在指定的背景数据中。
  
  全局变量可以用来保存函数执行后需要保存的数据,但是会影响函数的可移植性。
  
  功能块是用户用自己的专用存储区(即后台数据块)编写的程序块。功能块的输入输出参数和静态变量存储在指定的后台数据块中,临时变量存储在本地数据栈中。每次调用功能块时,都应该指定一个后台数据块。执行功能块后,后台数据块中的数据不会丢失,但本地数据栈中的数据不会保存。
  
  功能块采用类似C++的封装概念,将程序和数据封装在一起,移植性好。
  
  S7-300/400的共享数据块可由所有逻辑块使用。
  
  4.IEC 61131-3的程序结构
  
  IEC61131-3是可编程逻辑控制器的编程语言标准。IEC61131-3是世界上第一个也是唯一一个工业控制领域的编程语言标准。IEC61131-3有三种POU:程序、功能块和函数。
  
  函数是具有多个输入参数和一个输出参数(返回值)的POU函数。返回值的名称与函数的名称相同,需要定义返回值的数据类型。调用具有相同输入值的函数总是返回相同的结果。函数可以调用其他函数,但不能调用功能块或程序。具有可定义函数的局部变量是var和VAR_INPUT。
  
  功能块是具有多个输入/输出参数和内部存储单元的POU,功能块的输出参数值与其内部存储单元的值相关。功能块可以调用其他功能块或函数,但不能调用程序。在调用功能块之前,您必须在要调用该功能块的POU中为每个调用声明一个功能块实例,并且操作系统将为每个调用分配一个专用于该功能块的存储区域,plc应用很广泛,平时没事还是多看一些plc视频教程,便于理解。

plc编程中程序结构是什么样的相关推荐

  1. 西门子断开延时定时器_在PLC编程中定时器的一些针对现场不同情况的一些妙用...

    相信大家在PLC编程中常会用到定时器,定时器指令也是比较常用的指令,一般分为接通延时定时器.断开延时定时器.脉冲定时器等,相信大家对于指令也已经很熟悉,在本文中就不具体介绍定时器指令了. 本文重点介绍 ...

  2. 中山计算机编程,中山plc编程设计

    中山plc编程设计 这是一种基于人机界面的编程语言.它利用计算机的所有非设备和非机械的特性来完成一系列的操作.它是基于输入的一个程序.这样编出来的程序,由这样的程序到这样的程序到它编的程序的区域,这样 ...

  3. 三菱plc编程实例3000_三菱PLC十字路口的红绿灯编程实例

    点击↑↑上方关注,回复100领取电气控制100例. 十字路口车辆穿梳,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统,下面介绍三菱PLC编程实现的 ...

  4. 三菱modbusRTU通讯实例_干货 | 解析西门子系列PLC编程实例

    点击箭头处"工业之家",选择"关注公众号"! 解析西门子系列PLC编程实例 三辊卷板机有分为机械式和液压式,机械式又分为对称式和非对称式.用于重型机械公司,将金 ...

  5. ab plc编程软件_三菱PLC编程程序PLC的软件编程

    三菱PLC编程程序-PLC的软件编程 BL2 RACKMOUNT 4U系列工控机 - 搭载Intel第六代core i系列CPU, I3-6100, I5-6500, I7-6700 CPU可选 - ...

  6. c语言和plc编程,PLC编程C语言.ppt

    PLC编程C语言 华中数控培训讲义 · PLC编程 C语言编程 PLC控制的范围 数控机床所受到的控制可分为两类:数字控制和顺序控制. 数字控制主要指对各进给轴进行精确的位置控制,包括:轴移 动距离. ...

  7. 禾川触摸屏编程软件_汇川PLC编程PLC代写程序

    汇川PLC编程-PLC代写程序 硬件设计 在硬件方面,Pro-face的要求不高,需要一个24V/2A的直流电源和触摸屏本身.另外,为了与PLC通讯,我们根据需要选择了MPI接口的RS232C串行连接 ...

  8. 三菱plc编程实例3000_三菱入门PLC编程PLC系统程序包括哪些

    三菱入门PLC编程-PLC系统程序包括哪些 包装机的种类繁多,分类方法很多.从不同的观点出发可有多种,按机械种类分为:液体包装机.粉剂包装机.颗粒包装机.贴体包装机.酱类包装机.电子组合秤包装机.枕式 ...

  9. ab st语言编程手册_西门子PLC编程SCL和LAD谁才是王者?一起讨论一下

    现在很多大品牌的中高级 PLC 都支持国际电工委员会 IEC61131 标准中规范的五种编程语言的混合编程,即梯形图(LD).结构化文本(ST).流程图(SFC).指令表(IL)和功能块(FB).在这 ...

最新文章

  1. C primer plus -- Chapter 2
  2. 克隆虚拟机加入域遇到的相同SID问题解决。。。
  3. PostgreSQL逻辑优化——整体架构
  4. LightOJ 1055 BFS暴力
  5. github 安装浏览器导航插件Octotree
  6. 2019年8月9日 下午6:06:12 BD5613F5-0BE7-44DF-B231-CCC87
  7. 三菱PLC进行连续数据采集、时序和故障追踪的方法
  8. python 水位流量关系曲线_水位流量关系曲线的绘制方法_张红艳
  9. JAVA 事务不生效的常见场景和修改方案
  10. POI Excel插入水印(只支持07版Excel文档)
  11. 思科模拟器的常用命令
  12. SQL 中的注释语句
  13. 【资源分享】一周整理的,这是价值10W的32个Python项目!
  14. pycharm使用了ctrl+鼠标回到原来的地方方法
  15. iOS中更新版权 Copyright
  16. Python求最大公约数的五种常见方法
  17. base64常用的前缀(excel,doc,pdf,png,jpg)
  18. 关系抽取(二)远程监督方法总结
  19. 什么是网络流量劫持?揭秘详解黑客劫持的攻击手段与防御方法
  20. basler 相机取图超时_Basler|基于OpenCV的Basler相机采集图像程序

热门文章

  1. 文档转换、在线预览的几种方式以及推荐
  2. ExtJs6 修改store里面数据grid单元格左上角会有红点标签的去掉方法
  3. 群晖Docker映像下载缓慢或失败解决方案
  4. 开启xmp1还是2_玩机鸭x:手机开启“强制进行GPU渲染”功能对手机有什么影响?...
  5. linux下根据关键字批量杀掉进程
  6. vue3+quasar+capacitor开发多平台项目,使用cordova和capacitor插件(支持所有前端框架)
  7. 造车烧钱,服务烧钱,电池自燃,蔚来造车“火中如何取粟”
  8. 青藤放飞“猎鹰”,主动防御又多一张牌
  9. 【英语竞赛】专项练习之翻译
  10. 1N4007、M7、A7整流二极管,有什么区别?