首页 理论教育 使用循环中断控制彩灯的实训二十七

使用循环中断控制彩灯的实训二十七

时间:2023-06-26 理论教育 版权反馈
【摘要】:本节的实训主要用于熟悉启动组织块与循环中断组织块的使用方法。图4-20 组态循环中断如果两个循环中断OB的时间间隔为整倍数,它们可能同时请求中断。单击两次I0.2对应的小方框,在I0.2的上升沿,循环中断被激活,QB4的值又开始循环移位。

使用循环中断控制彩灯的实训二十七

本节的实训主要用于熟悉启动组织块与循环中断组织块的使用方法。

1.CPU模块的启动方式与启动组织块

在CPU模块的属性对话框的“启动”选项卡,S7-400可以选择暖启动、热启动和冷启动这3种启动方式中的一种,绝大多数S7-300 CPU只能暖启动。

启动组织块OB100~OB102用于系统初始化。CPU上电或由STOP模式切换到RUN模式时,首先执行一次启动组织块。用户可以在启动组织块中编写初始化程序,例如设置开始运行时某些变量的初始值和输出模块的初始值等。

1)暖启动:过程映像数据和没有保持功能的存储器位、定时器和计数器被复位。具有保持功能的存储器位、定时器、计数器和所有的数据块将保留原数值。执行一次OB100后,循环执行OB1。将模式选择开关从STOP位置扳到RUN位置,执行一次手动暖启动。

2)热启动:如果S7-400 CPU在RUN模式时电源突然丢失,在设置的时间之内又重新上电,将执行OB101,自动地完成热启动。从上次RUN模式结束时程序被中断之处继续执行,不对定时器、计数器、位存储器和数据块复位。

3)冷启动:所有系统存储区均被清零,包括有保持功能的存储区。用户程序从装载存储器载入工作存储器,调用OB102后,循环执行OB1。将模式选择开关扳到MRES位置,可以实现手动冷启动。

2.循环中断组织块

循环中断组织块用于按精确的时间间隔循环执行中断程序,例如周期性地执行闭环控制系统的PID控制程序,间隔时间从STOP模式切换到RUN模式时开始计算。部分S7-300 CPU只能使用OB35,其余的CPU可以使用的循环中断OB的个数与CPU的型号和订货号有关。

3.硬件组态

用新建项目向导生成名为“OB35例程”的项目(见随书光盘中的同名例程),CPU为CPU 315-2DP。双击硬件组态工具HW Config中的CPU,打开CPU属性对话框,由“循环中断”选项卡(见图4-20)可知,该CPU只能使用OB35,其循环的时间间隔(1~6000ms)的默认值为100ms,将它修改为1000ms,将组态数据下载到CPU后生效。如果没有作上述的硬件组态,时间间隔为默认值100ms。

978-7-111-53804-2-Chapter04-36.jpg

图4-20 组态循环中断

如果两个循环中断OB的时间间隔为整倍数,它们可能同时请求中断。相位偏移量(默认值为0)用于错开不同时间间隔的几个循环中断OB,以减少连续执行循环中断OB的时间。相位偏移应小于OB的循环时间间隔。

组态结束后,单击工具栏上的 978-7-111-53804-2-Chapter04-37.jpg 按钮,编译并保存组态信息。

4.OB100的程序

用鼠标右键单击SIMATIC管理器左边窗口中的“块”,在弹出的菜单中执行“插入新对象”→“组织块”命令,在出现的“属性–组织块”对话框中(见图4-21),将组织块的名称改为OB100,设置创建语言为LAD(梯形图)。单击“确定”按钮后,在SIMATIC管理器右边窗口出现OB100。

双击打开OB100(见图4-22),用MOVE指令将MB0的初值设置为7,即低3位置1,其余各位为0。此外用ADD_I指令将MW6加1,可以观察CPU执行OB100的

978-7-111-53804-2-Chapter04-38.jpg

图4-21 OB100的属性对话框

978-7-111-53804-2-Chapter04-39.jpg

图4-22 OB100的程序

5.OB35的程序

OB35中的程序用于控制8位彩灯循环移位,用I0.0控制移位的方向。I0.0为1状态时彩灯左移,为0状态时彩灯右移。(www.xing528.com)

S7-300/400只有双字循环移位指令,MB0是双字MD0的最高字节(见图4-23)。在MD0每次循环左移1位之后,最高位M0.7的数据被移到MD0最低位的M3.0。为了实现MB0的循环移位,移位后如果M3.0为1状态,将MB0的最低位M0.0置位为1见图4-25的程序段1),反之将M0.0复位为0,相当于MB0的最高位M0.7移到了MB0的最低位M0.0。

978-7-111-53804-2-Chapter04-40.jpg

图4-23 MB0循环左移

在MD0每次循环右移1位之后(见图4-24),MB0的最低位M0.0的数据被移到MB1最高位的M1.7。移位后根据M1.7的状态,将MB0的最高位M0.7置位或复位(见图4-25的程序段2),相当于MB0的最低位M0.0移到了MB0的最高位M0.7。

978-7-111-53804-2-Chapter04-41.jpg

图4-24 MB0循环右移

978-7-111-53804-2-Chapter04-42.jpg

图4-25 OB35的程序

在程序段3,用MOVE指令将MB0的值传送到QB4,用QB4来控制8位彩灯。

6.禁止和激活硬件中断

SFC40“EN_IRT”和SFC39“DIS_IRT”分别是激活、禁止中断和异步错误的系统功能。它们的参数MODE(模式)为2时激活或禁止OB_NR指定的OB编号对应的中断。因为MODE的数据类型为BYTE,它的实参为十六进制常数16#2。

在OB1中编写图4-26所示的程序,在I0.2的上升沿调用SFC“EN_IRT”来激活OB35对应的循环中断,在I0.3的上升沿调用SFC“DIS_IRT”来禁止OB35对应的循环中断。

978-7-111-53804-2-Chapter04-43.jpg

图4-26 OB1激活和禁止循环中断的程序

7.仿真实验

打开仿真软件PLCSIM(见图4-27),下载系统数据和所有的块以后,切换到RUN-P模式。MB0和QB4被设置为初始值7,其低3位被初始化为1,MW6的值一直为1。因为只在OB100中访问了MW6,说明只调用了一次OB100。

978-7-111-53804-2-Chapter04-44.jpg

图4-27 PLCSIM

OB35被自动激活,CPU每1s调用一次OB35。因为I0.0的初始值为0状态,QB4的值每1s循环右移1位。将I0.0设置为1状态,QB4由循环右移变为循环左移。

单击两次I0.3对应的小方框,在I0.3的上升沿,循环中断被禁止,CPU不再调用OB35,QB4的值保持不变。单击两次I0.2对应的小方框,在I0.2的上升沿,循环中断被激活,QB4的值又开始循环移位。

改变OB100中MB0的初始值后,下载到仿真PLC,观察运行的效果。

8.仿真练习

要求每2s调用一次OB35,每次调用时将MW30加1。编写程序后下载到仿真PLC,调试程序直到满足要求。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈