西门子CPU1214C模块控制器西门子中国总代理 西门子授权代理商

   2023-12-14 200

西门子CPU1214C模块控制器西门子中国总代理  西门子授权代理商

西门子CPU1214C模块控制器西门子中国总代理  西门子授权代理商

西门子CPU1214C模块控制器西门子中国总代理  西门子授权代理商

西门子PLC硬件中断组织块怎么解决

 硬件中断组织块(OB40~OB47)用于快速响应信号模块(SM,即输入/输出模块)、通信处理器(CP)和功能模块(FM)的信号变化。具有硬件中断功能的上述模块将中断信号传送到CPU时,将触发硬件中断。绝大多数S7-300 CPU只能使用OB40,S7-400 CPU 可以使用的硬件中断OB的个数与CPU的型号有关。

  为了产生硬件中断,在组态有硬件中断功能的模块时,应启用硬件中断。产生硬件中断时,如果没有生成和下载硬件中断组织块,操作系统将会向诊断缓冲区输入错误信息,并执行异步错误处理组织块OB80。

  硬件中断 OB 默认的优先级为16~23,可以修改 S7-400的优先级。

  硬件中断被模块触发后,操作系统将用OB40的局部变量向用户提供模块的起始地址和模块中产生硬件中断的点的编号。如果在处理硬件中断的同时,又出现了其他硬件中断事件,新的中断按以下方法识别和处理如果正在处理某一中断事件,又出现了同一模块同一通道产生的完全相同的中断事件,新的中断事件将丢失,即不处理它。

  在图4-46中数字量输入模块输入信号的第一个上升沿时触发中断,由于正在用OB40处理中断,第2个和第3个上升沿产生的中断信号丢失。

  如果正在处理某一中断信号时,同一模块其他通道或其他模块产生了中断事件,新的请求将被记录,空闲后再执行该中断。当前的中断组织块执行完后,再处理被记录的中断。

  1.硬件组态

  生成一个名为“OB40例程”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU315-2DP。选中SIMATIC管理器左边的300站对象,双击右边窗口的“硬件”图标,打开硬件组态工具HW Config(见图4-47)。将硬件目录中名为“DI4xNAMUR,Ex”的4 点DI模块插入4号槽,16点D0模块插入5号槽。

组态硬件中断

图4-47 组态硬件中断

  自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-47的右图)。用复选框启用硬件中断,设置10.0产生上升沿中断,10.1产生下降沿中断。

  2. 编写OB40中的程序

  OB40中的程序(见图4-48)判断是哪个模块的哪个点产生的中断,然后执行相应的操作。临时局部变量OB40_MDL_ADDR和OB40_POINT_ADDR分别是产生中断的模块的起始字节地址和模块内的位地址,数据类型分别为WORD和DWORD,这两个变量不能直接用于整数比较指令和双整数比较指令。

  首先用MOVE指令将它们保存到MW6和MD8,才能用比较指令判别是哪一个模块和哪一点产生的中断。在10.0的上升沿将Q4.0置位,在10.1的下降沿将Q4.0复位。

OB40中的程序

图4-48 OB40中的程序

  3.硬件中断的仿真实验

  打开PLCSIM(见图4-49),下载所有的块,将仿真PLC切换到RUN-P模式。执行PLCSIM的菜单命令“Execute”(执行)→“Trigger Error OB”(触发错误OB)→“Hard-ware Interrupt(OB40-OB47)…”,打开“Hardware Interupt OB(40-47)”对话框(见图4-49右上方的小图),在文本框“Module address”(模块地址)内输入模块的起始地址0,在文本框“Module status(POINT_ADDR)”(模块状态(位地址))内输入模块内的位地址0。

  单击“Apply”(应用)按钮,触发I0.0的上升沿中断,CPU调用OB40,Q4.0被置为1状态,同时在“Intermupt OB”(中断 OB)显示框内自动显示出对应的OB 编号40。将位地址(POINT_ADDR)改为1,模拟I0.1产生的中断,单击“Apply”按钮,在松开按钮时,Q4.0被复位为0状态。单击“0K”按钮,将执行与“Apply”按钮同样的操作,同时关闭对话框。

  4.禁止和激活硬件中断

  图4-50是OB1中的程序,在10.2的上升沿调用SFC40(EN_IRT)激活OB40对应的硬件中断,在I0.3的上升沿调用SFC39(DIS_IRT)禁止OB40对应的硬件中断。SFC中的MODE为2时,OB_NR的实参为0B的编号。

  单击两次PLCSIM中I0.3对应的小方框,OB40被禁止执行。这时用图4-49右上角的对话框模拟产生硬件中断,不会调用OB40。单击两次10.2对应的小方框,OB40被允许执行,又可以用10.0和10.1产生的硬件中断来控制Q4.0了。

西门子PLC如何使用多重背景数据块

  有时需要多次调用同一个功能块,每次调用都需要生成一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块“碎片”。在用户程序中使用多重背景可以减少背景数据块的数量。

  例程“多重背景”(见随书光盘中的同名例程)与例程“发动机控制”的控制要求相同,两个例程中的FB1和FC1亦相同。原来用FB1控制汽油机和柴油机时,分别使用了背景数据块DB1和DB2。使用多重背景时只需要一个背景数据块DB10(见图4-36),但是需要增加一个功能块FB10来调用作为“局部背景”的FB1,FB1的数据存储在FB10的背景数据块DB10中。不需要给FB1分配背景数据块,即原来的DB1和DB2被DB10代替,但是需要在FB10的变量声明表中声明数据类型为FB1的两个静态变量(STAT)。


多重背景的程序结构


  1. 多重背景功能块

  生成多重背景功能块时,应采用默认的设置,激活功能块属性对话框中的复选框“多情景标题”(即多重背景功能)。

  生成FB10时,首先应生成FB1。为调用FB1,在FB10的变量声明表中(见图4-37),声明两个静态变量(STAT)“Petrol_Engine”(汽油发动机)和“Diesel_Engine”(柴油发动机),其数据类型为FB1(符号名为“发动机控制”)。变量声明表的文件夹“Petrol_Engine”和“Diesel_Engine”中的6个变量来自FB1的变量声明表,不是用户在FB10中输入的。

  生成静态变量“Petrol_Engine”和“Diesel_Engine”后,它们将出现在程序编辑器左边目录窗口的“多重实例”文件夹中(见图4-37)。将它们“拖放”到FB10的程序区(见图4-38),然后指定它们的输入参数和输出参数。


FB10的程序


  2.在OB1中调用多重背景功能块

  项目“发动机控制”中OB1对FB1的两次调用,被图4-39中OB1对FB10的调用代替。FB10的输出参数“PE_DE_OverSpeed”送给符号名为“两台发动机超速”的共享数据Q5.7。调用FC1的汽油机的风扇控制程序与图4-19中的相同。


在OB1中调用多重背景功能块


  FB10的背景数据块 DB10 见图4-40,多重背景的名称“Petrol_Engine”和“Diesel_En-图4-39 OB1中调用多重背景功能块FB10

  gine”加在FB1的局部变量之前,例如“Petrol_

  Engine.Enging_On”。可以修改柴油机的预置转速“Diesel_Engine.Preset_Speed”的实际值,修改后需要下载到PLC。


多重背景数据块DB10的数据视图


  使用多重背景时应注意以下问题

  1)首先应生成需要多次调用的功能块(例如上例中的FB1)。

  2)管理多重背景的功能块(例如上例中的FB10)必须设置为有多重背景功能。3)在管理多重背景的功能块的变量声明表中,为被调用的功能块的每一次调用定义一个静态(STAT)变量作为多重背景,以被调用的功能块的名称(例如FB1)作为该静态变量的数据类型。


核心提示:西门子电线电缆,西门子PLC,西门子代理商 西门子总代,西门子交换机,西门子CPU
 
反对 0举报 0 收藏 0 打赏 0评论 0
 
同类新闻
  • 联系人:吴悦
  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 手机:19514718569
我们的产品