- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
设备恒温的PLC控制——组织块及其应用的连续运行控制
任务7.3
在工厂有一台设备需要实现温度控制,假定当对其进行加热输出时,温度每分钟上升0.1℃,当不进行加热时,温度每分钟下降0.05℃,现要求将其温度控制在85℃左右,采用S7-1200系列PLC实现。
上述任务的温度控制是与时间相关的,所以可以采用循环中断组织块实现,为了避免加热设备频繁起停,可以设置当达到温度设定值时,加热设备延时加热一段时间再停止,当温度降低到设定值,加热设备延时一段时间再开启。
任务描述
任务分析
PLC中的中断
一
中断功能是用中断程序及时地处理中断事件,中断事件与用户程序的执行时序无关,有的中断事件不能事先预测何时发生。中断程序不是由用户程序调用,而在中断事件发生时由操作系统调用。中断程序是用户编写的。
知识学习
1.中断过程
中断处理用来实现对特殊内部事件或外部事件的快速响应。CPU检测到中断请求时,立即响应中断,调用中断源对应的中断程序执行完中断程序后,返回被中断的程序处继续执行原来的程序。
执行一个组织块OB的调用可以中断另一个OB的执行。一个OB是否允许另一个OB中断取决于其优先级。
程序循环组织块
二
需要连续执行的程序放在程序循环组织块OB1中,因此OB1也常常被称为主程序(Main),CPU在RUN模式下循环执行OB1,可以在OB1中调用FB和FC。一般用户程序都写在OB1中。
启动组织块
三
接通CPU电源后,S7-1200系列PLC在开始执行用户程序循环组织块之前首先执行启动组织块。通过在在启动组织块中编写程序来实现一些初始化的工作,如给某些变量赋值等。允许生成多个启动OB,默认的是OB100,其他启动OB的编号应大于等于123,一般只需要一个启动OB,或不使用。
循环中断组织块
四
循环中断组织块是以固定的时间间隔中断用户程序,在设定的时间间隔,循环中断(Cyclicinterrupt)组织块被周期性地执行。例如周期性地定时执行闭环控制系统的PID运算程序等,循环中断OB的编号为30~38或大于等于123。
循环中断组织块
四
1.创建循环组织块,
循环中断的时间间隔(循环时间)的默认值为100ms(是基本时钟周期1ms的整数倍),可以将它设置为1~60000ms。
相移(相位偏移,默认值为0)是与基本时间周期相比启动时间所偏移的时间,用于错开不同时间间隔的几个循环中断OB,使它们不会被同时执行。
延时中断组织块
五
定时器指令的定时误差较大,如果需要高精度的延时,就需要使用时间延时中断。延时中断组织块就是在过程事件出现后,延时一定的时间再执行其中的程序。在指令SRT_DINT的EN使能输入的上升沿,启动延时过程。用该指令的参数DTIME(1~60000ms)来设置延时时间。
延时中断组织块
五
延时中断起用完后,若不再需要使用延时中断,则可使用CAN_DINT指令来取消已启动的延时中断OB,还可以在超出所组态的延时时间之后取消调用待执行的延时中断OB。在OB_NR参数中,可以指定将取消调用的组织块编号。
延时中断的使用:
首先创建延时中断组织块OB20,在其中编写MW101加1操作的程序,然后在OB1中启动该延时中断组织块。
硬件中断组织块
六
1.硬件中断事件与硬件中断组织块
硬件中断(Hardwareinterrupt)组织块用来处理需要快速响应的过程事件。出现CPU内置的数字量输入的上升沿、下降沿或者高速计数器事件时,立即终止当前正在执行的程序,改为执行对应的硬件中断OB。硬件中断组块没有启动信息。
最多可以生成50个硬件中断OB,在硬件组态时定义中断事件,硬件中断OB的编号为40~47或大于等于123。
硬件中断组织块
六
硬件中断组织块的使用
I/O地址分配
七
任务实施
电路设计
八
程序编写
九
1.创建OB100并编写OB100程序
2.创建循环中断循环组织块OB30并编写程序
程序编写
九
3.编写延时中断程序OB20
4.编写OB1主程序
程序编写
九
4.编写OB1主程序
文档评论(0)