西门子PLC 学习教程.pptx
《西门子PLC 学习教程.pptx》由会员分享,可在线阅读,更多相关《西门子PLC 学习教程.pptx(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1 S7-300的程序结构 STEP7为设计程序提供三种方法,即线性化编程、模块化编程和结构化编程,如图5.1。基于这些方法,可以选者最合适与你的应用程序设计方法。图5.1 STEP7 3种设计程序的方法第1页/共121页5.1 S7-300的程序结构1、线性化编程 线性化编程类似于硬件继电器控制电路,整个用户程序放在循环控制组织块OB1(主程序)中,循环扫描时不断地依次执行OB1中的全部指令,如图5.2。这种方式的程序结构简单,不涉及功能块、功能、数据块、局域变量和中断等比较复杂的概念,分析起来一目了然。这种结构是用于编写一些规模较小,运行过程比较简单的控制程序。由于所有的指令都在一个块
2、中,即使程序中的某些部分在大多数时候并不需要执行,每个扫描周期都要执行所有的指令,因此没有有效地利用CPU。此外如果要求多次执行相同或类似的操作,需要重复编写程序。图5.2线性编程第2页/共121页5.1 S7-300的程序结构2、模块化编程 程序被分为不同的逻辑块,每个块包含完成某些任务的逻辑指令,如图5.3。分块程序有更大的灵活性,适用于比较复杂、规模较大的控制工程的程序设计。组织块OB1(即主程序)中的指令决定在什么情况下调用哪一个块,功能和功能块(即子程序)用来完成不同的过程任务。被调用的块执行完后,返回到OB1中程序块的调用点,继续执行OB1。图5.3模块化编程 模块化编程的程序被划
3、分为若干个块,易于几个人同时对一个项目编程。由于只是在需要时才调用有关的程序块,提高了CPU的利用率。第3页/共121页5.1 S7-300的程序结构3、结构化编程 结构化编程将复杂的自动化任务分解为能够反映过程的工艺、功能或可以反复使用的小任务,这些任务由相应的程序快(或称逻辑块)来表示,程序运行时所需的大量数据和变量存储在数据块中。结构化程序比分块程序有更大的灵活性、继承性。适用于比较复杂、规模较大的控制工程的程序设计。某些程序块可以用来实现相同或相似的功能。这些程序块是相对独立的,它们被OB1或别的程序块调用,如图5.4。图5.4结构化编程第4页/共121页5.2 程序块类型 S7-30
4、0/400PLC的程序分系统程序和用户程序。系统程序是协调PLC内部事务的程序,与控制对象特定的任务无关,在从经销商购买CPU硬件的时候,CPU里面本身就包含了系统程序。系统程序完成PLC的启动/停止、I/O映像区的更新、用户程序的调用、中断的响应、错误及通信处理等任务。用户程序需要用户使用STEP7编程软件编写程序,然后下载到CPU中,可以完成需要的特定控制任务。用户程序包含用户编写的组织块(OB)、FB、FC和系统提供的SFB(系统功能块)与系统功能(SFC),被调用的块是OB之外的逻辑块。调用功能块时需要为它指定一个背景块,后者随功能块的调用而打开,在调用结束时自动关闭。图5.5 STE
5、P 7调用块的过程示意图,OB1调用FB1,FB1调用FC1,应按下面的顺序创建块:FC1、FB1及背景数据块OB1,即编程时被调用的块应该是已经存在的。第5页/共121页5.2 程序块类型图5.5块调用的分层结构第6页/共121页5.3 用户定义的块 STEP7将用户编写的程序和程序中所需要的数据放置在块中,使单个的程序部件标准化。通过在块内或块之间类似子程序的调用,使用户程序结构化,可以简化程序组织,使程序易于修改、查错和调试。块结构显著增加了PLC程序的组织透明性、可理解性和易维护性。STEP7软件中主要的各种块的简要说明见表5.1所示。表5.1逻辑块和数据块第7页/共121页5.3.1
6、 组织块(OB)组织块是CPU的操作系统与用户程序的接口,由操作系统调用,用于控制扫描循环和中断程序的执行、PLC的启动和错误处理等。OB与不同的CPU类型是相关的,某一型号的CPU支持哪些OB是确定的。例如,OB35和OB40可以在CPU315-2DP中使用,而OB36和OB41则不行。因此用户只能编写目标CPU支持的OB。OB1是对应于循环执行的主程序的程序块,它是STEP7程序的主干。其他大多数OB则对应于不同的中断处理程序(另外还有启动程序和背景程序等非中断类的OB)。与每一个OB紧密相连的是它对应的类型和优先级。OB的类型指出了它的功能,例如延时中断、硬件中断等;OB的优先级则用于表
7、明一个OB是否可以被另外一个OB中断,优先级较低的OB总是可以被优先级较高的OB中断。在S7系列CPU中,背景循环OB90的优先级最低,其次就是OB1,它的优先级是1,因此OB1通常总是可以被其他的OB中断。对于S7-300的CPU各个OB的优先级都是固定的,用户无法更改。第8页/共121页5.3.1 组织块(OB)SIMATIC S7系列CPU的全部组织块的资源及优先权等级见表5.2。不同的CPU模板具有不同的功能,因此并不是任何CPU模板都具有表5.1所示的全部组织块资源,如CPU312IFM只有OB1,OB40和OB100。表5.2 组织块第9页/共121页5.3.1 组织块(OB)表5
8、.2 组织块第10页/共121页1、OB1(循环组织块,又称主程序)S7 CPU的操作系统定期执行OB1。当操作系统完成启动后,将启动循环执行OB1。在OB1中可以调用其他功能(FC、SFC)和功能块(FB、SFB)。执行OB1后,操作系统发送全局数据。重新启动OB1之前,操作系统会将过程映像输出表写入输出模块中、更新过程映像输入表以及接收CPU的任何全局数据。操作系统在运行期受监视的所有OB模块中,OB1的优先级最低,也就是除OB90之外的所有OB块均可中断OB1的执行。S7专门有监视运行OB1的扫描时间的时间监视器,最大扫描时间的默认为150ms。用户编程时可以使用SFC43“RE_TRI
9、GR”来重新启动时间监视。如果用户程序超出了OB1的最大扫描时间,则操作系统将调用OB80(时间错误OB块),如果没有发现OB80,则CPU将转为STOP模式。除了监视最大扫描时间外,还可以保证最小扫描时间。操作系统将延迟启动新循环(将过程映像输出表写入输出模块中),直至达到最小扫描时间为止。在OB1中系统定义了如表5.3所示的本地数据,其地址从L0.0L19.7,地址从L20.0以上的本地数据允许用户定义。第11页/共121页5.3.1 组织块(OB)表5.3 OB1中系统定义的本地数据 符号名称符号名称数据数据类型型地址地址说明明OB1_EV_CLASSBYTE0.003位位=1事件等事件
10、等级;47位是位是标识,=1表示表示OB1被激活被激活OB1_SCAN_1BYTE1.0B#16#01:完成暖启完成暖启动 B#16#02:完成完成热启启动B#16#03:完成主循完成主循环 B#16#04:完成冷启完成冷启动B#16#05:主站主站-保留站切保留站切换和停止上一和停止上一主站之后新主站主站之后新主站CPU的首个的首个OB1循循环OB1_PRIORITYBYTE2.0优先先级1OB1_OB_NUMBERBYTE3.0OB编号(号(01)OB1_RESERVERD_1BYTE4.0保留保留OB1_RESERVERD_2BYTE5.0保留保留OB1_PREV_CYCLEINT6.0
11、上一次上一次扫描的运行描的运行时间(ms)OB1_MIN_CYCLEINT8.0自上次启自上次启动后的最小周期(后的最小周期(ms)OB1_MAX_CYCLEINT10.0从上次启从上次启动后的最大周期(后的最大周期(ms)OB1_DATE_TIMEDATE_AND_TIME12.0调用用OB时的的DATE_AND_TIME第12页/共121页2、时间中断组织块(OB10OB17)时间中断组织块可以单次运行,也可以定期运行:每分钟、每小时、每天、每月、每个月末。对于每月执行的时间中断OB,只可将1、2、28日作为起始日期。要启动时间中断,必须先设置中断,然后再将其激活。有以下4种可能的启动方式
12、:1)自动启动时间中断。一旦使用STEP7设置并激活了时间中断,即自动启动时间中断;2)使用STEP7设置时间中断,然后通过调用程序中的SFC30“ACT_TINT”来激活它;3)通过调用SFC28“SET_TINT”来设置时间中断,然后通过调用SFC30“ACT_TINT”来激活它;4)使用SFC39SFC42禁用或延迟和重新启用时间中断。由于时间中断仅以指定的时间间隔发生,因此在执行用户程序期间,某些条件可能会影响OB的操作。表5.4列出了其中的一些条件,并说明了该条件对执行时间中断OB的影响。在OB10OB17中系统定义了如表5.5(表中的符号以OB10为例)所示的本地数据,其中地址从L
13、0.0L19.7,地址从L20.0以上的本地数据允许用户定义。第13页/共121页表5.4 影响时间中断OB的条件条件条件 结果果 用用户程序程序调用用SFC29(CAN_TINT)并取消并取消时间中断中断 操作系操作系统清除了清除了时间中断的启中断的启动事件。如果需要事件。如果需要执行行OB,必必须再次再次设置启置启动事件并再次事件并再次调用用OB之前激活它之前激活它 用用户程序程序试图激活激活时间中断中断OB,但未,但未将将OB加加载到到CPU中中操作系操作系统调用用OB85.如果如果OB85尚未尚未编程(装程(装载到到CPU中),中),则CPU将将转为STOP模式模式当同步或更正当同步或
14、更正CPU的系的系统时钟时,用,用户提前提前设置了置了时间并跳并跳过时间OB的的启启动事件日期或事件日期或时间操作系操作系统调用用OB80并并对时间OB的的编号和号和OB80中的启中的启动事件信息事件信息进行行编码。随后操作系。随后操作系统将运行一次将运行一次时间OB,而不管本,而不管本应执行此行此OB的次数。的次数。OB80的启的启动事件信息事件信息给出了第一次跳出了第一次跳过时间OB的的DATE_AND_TIME当同步或更正当同步或更正CPU的系的系统时钟时,推后,推后设置了置了时间以使以使OB的启的启动事件日事件日期或期或时间得以修复得以修复S7-400CPU和和CPU318:如果在推后
15、:如果在推后设置置时钟之前已激活了之前已激活了时间OB,则不会再次不会再次调用它。用它。S7-300CPU:执行行时间OBCPU通通过暖启暖启动或冷启或冷启动运行运行有有SFC组态的所有的所有时间OB会被改回在会被改回在STEP7中指定的中指定的组态。如果已。如果已为相相应的的OB的的单次启次启动组态了了时间中断,使用中断,使用STEP7对其其进行行了了设置,并将其激活,置,并将其激活,则当所有当所有组态的启的启动时间为已已过去的去的时间(相(相对于于CPU的的实时时钟)时,会在暖启,会在暖启动或冷重启操作或冷重启操作系系统后后调用一次用一次OB当当发生下一生下一时间间隔的启隔的启动事件事件时
16、,仍仍执行行时间OB操作系操作系统调用用OB80.如果如果OB80没有没有编程,程,则CPU转为STOP模式。如模式。如果装果装载了了OB80,则会首先会首先执行行OB80和和时间中断中断OB,然后再,然后再执行行请求中断求中断第14页/共121页表5.5 OB10中系统定义的本地数据符号名称符号名称数据数据类型型地址地址说明明OB10_EV_CLASSBYTE0.003位位=1事件等事件等级;47位是位是标识,=1表示表示OB激激活活OB10_STRT_INFOBYTE1.0B#16#11:OB10的启的启动请求求(B#16#12:OB11的启的启动请求)求)(B#16#18:OB17的启动
17、请求)的启动请求)OB10_PRIORITYBYTE2.0分配的分配的优先先级,缺省,缺省值为2OB10_OB_NUMBERBYTE3.0OB编号(号(1017)OB10_RESERVERD_1BYTE4.0保留保留OB10_RESERVERD_2BYTE5.0保留保留OB10_PREIOD_EXEWORD6.0OB以指定的以指定的时间间隔隔执行行W#16#0000:单次次 W#16#0201:每分每分钟一次一次W#16#0401:每小每小时一次一次 W#16#1001:每天一每天一次次W#16#1201:每周一次每周一次 W#16#1401:每月一每月一次次W#16#1801:每年一次每年一
18、次 W#16#2001:月末月末 OB10_RESERVERD_3INT8.0保留保留OB10_RESERVERD_4INT10.0保留保留OB10_DATE_TIMEDATE_AND_TIME12.0调用用OB时的的DATE_AND_TIME第15页/共121页5.3.1 组织块(OB)【例5-1】使用STEP7设置并激活时间中断。首先建立一个完整项目,如图5.6所示,然后单击项目中的“SIMATIC300(1)”,打开右边的硬件图表,如图5.7所示,将自动弹出硬件组态画面,如图5.8所示,把电源和CPU等放到机架相应的位置上。图5.6建立一个项目并完成项目中的目录第16页/共121页5.3
19、.1 组织块(OB)图5.7打开硬件组态画面 在硬件组态画面,双击机架上的CPU,如图5.8所示,将弹出CPU属性画面。在CPU属性画面点击“时刻中断”,打开时间中断设置画面,如图5.9所示选择“激活”,要求每分钟执行并写上执行OB10的日期和时间,图中的开始日期时间是2008年10月2日10时00分,然后点击“确定”。最后在硬件组态画面点击保存和编译快捷图标,如图5.10所示完成保存和编译。第17页/共121页图5.8硬件组态画面图5.9在CPU属性栏设置OB10时间中断第18页/共121页5.3.1 组织块(OB)图5.10把硬件组态信息编译并保存 在管理画面点击“块”,然后在右边的目录下
20、点击鼠标右键,在弹出的画面中点击“插入新对象”,选择添加“组织块”,如图5.11所示。在生成组织块的过程中,选择组织块OB10及写上附加信息,如图5.12所示,然后点击“确定”。第19页/共121页5.3.1 组织块(OB)图5.11 在管理画面插入OB10第20页/共121页5.3.1 组织块(OB)图5.12在生成OB10过程中写上附加信息 在管理画面块的目录中双击OB10的图标,打开OB10编程界面,如图5.13所示。在OB10里编程如图5.14所示的程序,然后保存。第21页/共121页图5.13在管理画面打开OB10图5.14在OB10里编写的程序第22页/共121页5.3.1 组织块
21、(OB)在管理画面的目录块中点击“SIMATIC 300(1)”,然后点击下载快捷图标,如图5.15所示,把整个项目的信息下载到CPU中。图5.15把整个项目(站)的信息下载到CPU中第23页/共121页5.3.1 组织块(OB)最后把CPU工作方式选择到运行模式,监控OB10的程序状态,可以看到每分钟MW10的数值会加1,如图5.16所示。图5.16在CPU运行状态下监控OB10的程序状态第24页/共121页5.3.1 组织块(OB)【例5-2】通过调用SFC28“SET_TINT”来设置时间中断,然后通过调用SFC30“ACT_TINT”来激活它。这个例子没看懂 首先建立一个项目并完成项目
22、中的目录,然后进行硬件配置并把硬件配置的信息保存并编译。在管理画面块目录中插入OB10,如图5.17所示。在OB10的生成过程中,写上附加信息,如图5.18所示。图5.17在管理画面里插入OB10第25页/共121页5.3.1 组织块(OB)图5.18在生成OB10的过程中写上附加信息 在管理画面的块目录里打开OB10,如图5.19所示。在OB10里编写程序,如图5.20所示,然后保存。第26页/共121页图5.19在管理画面打开OB10图5.20在OB10里编写的程序第27页/共121页5.3.1 组织块(OB)在管理画面的块目录里打开OB1,如图5.21所示。在OB1里编写程序,如图5.2
23、2所示,然后保存。图5.21在管理画面打开OB1第28页/共121页5.3.1 组织块(OB)第29页/共121页5.3.1 组织块(OB)第30页/共121页5.3.1 组织块(OB)第31页/共121页5.3.1 组织块(OB)第32页/共121页5.3.1 组织块(OB)在管理画面的块目录中插入OB80并打开OB80。在OB80里编写如图5.23所示程序并保存。图5.23 在OB80里编写的程序第33页/共121页5.3.1 组织块(OB)图5.24是完成OB1和OB80的程序后在管理画面的块目录中的内容。然后在管理画面把整个目录信息下载到CPU中。图5.24 管理画面中块的信息第34页
24、/共121页5.3.1 组织块(OB)在调试时候重点监控M103.2和M103.4的状态。运行CPU,可以看到M103.4=1,表示OB10已经下载到CPU,如图5.25(a);当接通M0.0时,可以看到M103.2=1,表示激活了OB10,并看到MW10每分钟加3;当接通M0.4时,看到M103.2=0,表示OB10已经被取消激活,MW10停止加3,如图5.25(b)。(a)第35页/共121页5.3.1 组织块(OB)(b)图5.25 PLCSIM仿真画面第36页/共121页5.3.1 组织块(OB)3、延时中断组织块(OB20OB23)S7提供多达4个在指定延迟后执行的OB(OB20OB
25、23)。每个延时OB均可通过调用SFC32(SRT_DINT)来启动。延迟时间是SFC32的一个输入参数。当用户程序调用SFC32(SRT_DINT)时,需要提供OB编号、延迟时间和用户专用的标识符。经过指定的延迟后,相应的OB将会启动。可以使用SFC33取消尚未启动的延时中断,可以使用SFC34访问延时中断组织块的状态,可以使用SFC39SFC42来禁用或延迟并重新使能延迟中断。只有当CPU处于RUN模式时才会执行延时OB。暖启动或冷启动将清除延时OB的所有启动事件。第37页/共121页5.3.1 组织块(OB)延迟时间(单位为ms)和OB编号一起传送给SFC32,时间到期后,操作系统将启动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西门子PLC 学习教程 西门子 PLC 学习 教程
限制150内