欢迎来到西门子工业支持中心网站!

  1. 移动端入口
    • 工业服务小程序
    • 支持中心移动端首页
    • 智能小西-智能问答与在线预约
    • SIEMENS工业找答案小程序
    • SIEMENS工业专家大讲堂小程序
    • 西门子工业1847俱乐部
    • 自动化So酷
  2. 签到有奖
  3. 登录后可享:

    学技术视频
    查海量资料
    论话题经验
    问常见问题
    立即登录

    还没有账号?

    立即注册
  4. 会员
  5. 消息

    登录后可查看消息记录

    立即登录
  6. 收藏

    登录后可查看收藏记录

    立即登录
  7. 历史

    登录后可查看历史记录

  8. 公告
搜索

热搜词:1847工业学习平台压力仪表资料汇总产品信息

  • 技术支持
    • 首页
    • 智能小西-自动预约
    • 风驰卡
    • 产品入门
  • 下载中心
    • 首页
    • 售前文档(样本、宣传册等)
    • 售后文档(FAQ、手册等)
  • 工业学习平台
    • 首页
    • 了解会员权益
    • 立即开通1847会员
  • 培训认证
    • 首页
    • 取证训练营
    • 教室培训
    • 证书查询
  • 技术论坛
    • 首页
    • 最新发帖
    • 精华帖
    • 发新帖
  • 找答案
    • 首页
    • 已解决问题
    • 精华常见问题
    • 发布新问题
  • 售后服务
    • 首页
    • 提交服务需求
    • 查询服务进程

西门子官方商城

西门子中国
  • 工业自动化
  • 驱动技术
  • 客户服务
  • 冶金技术
  • 行业市场解决方案
  • 工业支持中心
工业支持中心
  • 我的支持中心
  • 下载中心
  • 全球技术资源
  • 1847工业学习平台
  • 产品入门新手必读
  • 找答案
  • 技术论坛
  • 售后服务
  • 网络资源新手必读
  • 高级搜索
技术论坛
  • 论坛公告
  • 用户指南
  • 用户排行榜
  • 热门帖子
  • 最高收藏帖
  • 精华帖
  • 分享帖
  • 高端推荐帖
  • 在线用户列表
  • 论坛管理
1847大咖专栏 / 崔工谈博途与PLC
我对硬件中断的理解
 • 产品分类
自动化系统
    SIMATIC S7-1500(T) 
    SIMATIC S7-1200 
    SIMATIC S7-200
    SIMATIC S7-200 SMART 
    SIMATIC S7-300/400 
    SIMATIC S5
    SIMATIC Net
    Profinet技术开发专区
    工业边缘计算
    SIMATIC WinCC / Panel 
    SIMATIC WinCC OA (原PVSS)
    SIMATIC PCS 7
    IPC/PG
    LOGO!
    SIMATIC IOT2000
    工业电源
驱动技术
    MicroMaster 
    MasterDrives
    直流调速器
    电机
    SIMOTION
    SINAMICS 
    驱动技术综合产品
数控系统
    SINUMERIK 
    SIMODRIVE
低压电器
    低压电器
传感器与通讯
    过程仪表
    分析仪器
    工厂传感器
谈天说地
    谈天说地
 • 咱工程师的故事
网友专栏
    网友专栏 
1847大咖专栏
    电气传动系统漫谈
    崔工谈博途与PLC
    漫谈SCADA进阶之路
    运动控制产品天地
    聊聊收放卷
    运动控制应用天地
    驱动诊断
    西家讲师教学精要
    漫谈过程自动化
    PROFINET工业通信详解
    冯工聊工业网络
    EMC问题及处理
特别专题
    专家大讲堂课后探讨
    西家技术派
    专家诊断专栏
    西家传动
    自动化so酷
    西门子工业1847俱乐部
 • 培训与认证答疑专区
培训与认证答疑专区
    S7-1200精英训练营
    WinCC精英训练营
    S7-200SMART精英训练营
    小型自动化系统
    V90精英训练营
    G120变频器精英训练营
    PLC编程精英训练营
 • 服务合作伙伴专区
服务合作伙伴专区
    西门子工业技术π圈
    Networks and Communication
    GMC蓝黄带考试-G120
    GMC蓝黄带考试-V90
    GMC 合作伙伴专区
  • 我对硬件中断的理解
  • 作者: 1847会员 啤酒鱼发布时间:2021-04-14 15:10:30浏览次数:5226次 锁帖 精华帖星级3级 精华帖 高赞 回复本帖
  • 标签:
    • 软件编程
    • 安装调试
    • 基础理论
    • S7-300
    • CPU315-2DP
    • ET200SP
    • 700
    • DP
    • FC1

            大家可能对硬件中断已经非常熟悉了,硬件中断也称为过程中断用于快速响应的场合,例如输入模块连接一个信号,如果该信号发生变化,在不包含通信影响的情况下CPU的响应时间为:

      模块内部处理时间 +

      模块输入延时 +

      更新输入过程影像区 +

      2*OB1(最长)+

      更新输出过程影像区 +

      模块输出时间。

            主要瓶颈是OB1的执行时间,最长可能是2倍的循环时间,另外普通模块的输入延时也比较长。如果使用硬件中断处理,CPU的响应时间为:

      CPU 硬件中断响应时间(不同CPU的响应时间不同)+

      模块内部中断处理时间 +

      模块输入延时+ 

      OB40(硬件中断处理时间) +

      模块输出时间。

      主要区别在于OB块的响应时间。

            硬件中断的配置也非常简单,例如在具有中断能力的输入模块中,选择需要触发中断的通道,再选择触发事件,例如上升沿或者下降沿触发,如图1所示。

    1.jpg

            这样事件到来时就会调用分配的中断OB,如图2所示。S7-300 CPU(除CPU318外)只有一个中断OB。

    2.jpg


            好了,基本功能介绍完了,问题也来了,有的工程师对硬件中断的使用可能存在一些误区或者一些非常规的应用,例如事件顺序记录功能。下面是我对硬件中断的理解和总结,为了便于理解,以问答方式体现,如有错误,也请大家指出,一起探讨!

            第一个问题:如果多个通道使用相同的硬件中断,例如OB40,怎么判断哪一个通道触发的?

            假设使用S7-300 CPU315-2DP/PN CPU,SM321模块三个通道I0.0、I0.1和I0.2触发三个事件,分别调用不同的事件处理程序。下面的程序是否正确?

    3.jpg

            这个程序肯定是错误的,因为执行硬件中断OB40比更新过程输入映像区早,可能永远不会调用FC1/2/3。应该从OB40的启动信息中进行判断,主要通过参数OB40_MDL_ADDR(模块地址)和OB40_POINT_ADDR(模块状态),不同的模块有不同的OB40_POINT_ADDR参数,SM321的参数如图3所示。

    4.jpg

            使用OB40启动信息判断的程序如图4所示。

    5.jpg

            先判断哪一个模块,模块的地址为0,使用OB40_MDL_ADDR进行判断,然后再判断哪一个通道,通道信息参考图3。

            第二个问题:如果I0.0触发OB40运行,在运行过程中I0.0再次触发,是否执行OB40完成后再次运行一次?

            这个在OB40的帮助文档中有这样的描述:“当模块触发硬件中断后,操作系统将标识插槽并确定相关硬件中断 OB。如果该 OB 的优先级高于当前优先级,则启动该 OB。当执行完此硬件中断 OB 后,将发送通道特定的确认。如果在对硬件中断进行标识和确认的这段时间内,在同一模块中发生了触发硬件中断的另一事件,则应用以下规则:

    (1) 如果该事件发生在先前触发硬件中断的通道中,则将丢失相关中断(参考图5)。

    6.jpg

    (2) 如果事件发生在相同模块的另一通道中,则在该时刻不会触发硬件中断。但是,此中断不会丢失,在确认当前激活的硬件中断之后会触发此中断。”

            结论是,相同通道的会丢失,不同通道的事件保留一次。

            第三个问题:OB40怎样对事件进行确认?

            这个在手册中没有描述,CPU的背板总线没有办法测试,通过PROFINET IO连接一个站点,在站点上安装一个具有中断能力的模块,通过抓包软件可以监控报文,从而得出中断响应以及确认的过程(只是测试结果),如图6所示。

    7.jpg

            第四个问题:如果I0.0触发OB40运行,在运行过程中I0.1和I0.2同时触发,I0.1和I0.2触发的事件是否丢失?

            从第二问题的帮助文档中可以知道I0.1和I0.2触发的事件不会丢失。如果OB40资源释放即确认I0.0事件,I0.1和I0.2是各自触发一次OB40运行(运行两次),还是只运行一次?

            这个问题是分别对待的,如果是ET200S,例如2DI DC24V HF,OB40_POINT_ADDR参数如图7所示。

    8.jpg

            这样一个模块的每一个通道状态都可以通过一个位信号表示。编写的程序如图4所示,I0.1和I0.2同时触发事件后会调用不同程序块,OB40只运行一次就可以完成了,如果在程序中有计数的操作,例如每一个事件触发OB40运行一次,然后计数一次,这样可能就会造成偏差了。

            如果三个触发信号位于三个模块上,例如I0.0、I2.0和I4.0分别位于三个模块上,同时触发,OB40将运行几个周期?

            答案肯定是三个周期,因为使用OB40的参数OB40_MDL_ADDR(模块地址)判断中断源,一次只能判断一个模块。

            如果使用是ET200SP模块,例如DI 8x24VDC HF模块,I0.1和I0.2同时触发,是调用OB40一次还是两次?先看一下该模块的OB40_POINT_ADDR参数,如图8所示。

    9.jpg


            模块的中断信息是使用数字进行表示的,一次只能表示一个通道,这样只能每一个信息独立触发一次OB40。为什么会发生这样的变化?因为ET200S只能表示上升沿,即使多个点同时触发也是相通的事件类型,而ET200SP更加精确,可以分辨不同的事件类型,例如上升沿或者下降沿触发,这样就不可能一次处理多个事件了(例如I0.1的上升沿和I0.2的下降沿),只能一个一个地处理了。

            第五个问题:S7-1500 CPU是否响应ET200S模块的硬件中断?

            为了使用S7-1500的新功能,许多S7-300的项目都移植到了S7-1500,但是一些模块并没有更新,还是使用原有I/O系统,例如通过PROFINET连接的I/O系统,那么S7-1500是否可以响应ET200S的硬件中断事件?先看一下S7-1500 硬件中断OB块的启动信息。

    硬件中断OB块启动信息说明如下:

    15.jpg

            可以通过参数LADDR和IChannel进行判断事件触发的信号源,程序如图9所示

    10.jpg

            示例中为一个模块的两个输入点,通道0和1,程序中首先判断是哪一个模块(硬件标识符),然后再判断是哪一个通道触发的中断,最后再调用与中断相关联的程序。

            移植后,除了中断的程序需要更改外,还需要考虑一个问题,如果ET200S一个模块多个通道同时触发,S7-1500的CPU怎样处理?S7-1500 CPU不能批量处理同时到来的中断事件,如果同时触发可能会丢失。所以在TIA 博途V14以及后续版本才添加了参数PointAddr,这样才可以判断同时触发的中断事件而不至于丢失,所以在V14以前的版本可能会有问题,这里只是猜测,可能也是为了更方便的程序移植。

            第六个问题:中断OB在运行期间其它通道触发的中断事件存储在哪里?

            是存储在模块吗?一个模块的多个点触发,模块可以识别存储的顺序,但是不同模块触发的顺序就不能识别了,所以推测只能是模块的管理者,在中央机架上,模块的管理者是CPU,在分布式IO站点上,模块的管理者是接口模块。这些管理者中带有中断的存储缓存区。

    1)中央机架

            对于ET200S模块(或者ET200M),管理者是S7-300或者ET200S CPU,CPU的中断缓存区是基于模块的,一个模块作为一条缓存信息,一个模块同时多个通道触发,作为一条缓存信息。如果多个模块触发,则生成多条缓存信息。

            对于ET200SP模块(或者ET200MP),管理者是S7-1500或者ET200SP CPU,CPU的中断缓存区是基于通道的,一个模块同时多个通道触发,作为多条缓存信息。

    2)分布式IO站点

            这个与在中央机架上是类似的,中央机架是通过背板总线通信的,分布式IO是通过总线通信的。有一个区别就是模块的中断信息是先存储于接口模块的,然后再发送到CPU的中断缓存区中,因为通信是在主站与从站建立的,而不是主站与模块。同时触发中断特性与中央机架上的特性应该相同,也需要区分ET200S和ET200SP。使用S7-1500 CPU 通过PROFINET网络分别连接ET200S和SP做了一个测试。ET200SP的测试如图10所示。

    11.jpg

            ET200SP中断缓存基于通道,ET200SP接口模块缓存长度为9,超出后调用诊断诊断。ET200S的测试如图11所示。

    12.jpg

            ET200S中断缓存基于模块,同时触发的事件合并为一个,减少接口模块的缓存长度。

            除ET200SP外,其它的模块管理者的缓存长度没有测试。

            第七个问题:模块布置在分布式IO站点上,PROFIBUS与PROFINET对中断的响应有什么影响?PROFIBUS是令牌的访问机制,如图12所示。

    13.jpg

            使用PROFIBUS,即使从站上的模块接收到中断的触发信号,也不能及时发送到主站,只能等待主站轮询时才能发送,如果通信速率比较低,又是多主站结构,则响应的时间较长。PROFINET是全双工的工作模式,硬件中断的发送有独立的通道,如图13所示。所以说使用PROFINET处理中断的响应时间非常快。

    14.jpg

    第八个问题:OB40与OB41的区别?

            使用上没有区别,我认为就是一个资源问题,一个OB就会有一个中断缓存区,S7-300只有一个(除CPU 318外),S7-400最多有8个,S7-1500有50个。使用S7-1500可以将不同的通道分给不同的中断OB,这样可以不用使用编程的方式判断触发的信号源。

     

    注意:

    1:同时触发多个硬件中断将造成循环程序的严重超时。

    2:上面的探讨基于测试和推测,只是一个参考和探讨,不代表西门子官方数据。


    推荐帖推荐理由:(推荐人:)  修改
    有帮助(16)


  • 千年走一回:6楼2021-06-21 00:07:51
  • 分析总结很到位!

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(0)

      
  • ashlow:5楼2021-05-24 08:06:33
  • 谢谢老师的分享,有意义!

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(0)

      
  • 手机用户20200103FZF48F:4楼2021-04-18 20:56:07
  • 学习了,谢谢分享。

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(0)

      
  • WOWUWUWU:3楼2021-04-18 20:54:58
  • 很好,值得学习。

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(1)

      
  • 1847会员 yzm_cumt:2楼2021-04-17 17:41:39
  • 问答的方式很不错,看着过瘾

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(0)

      
  • 木头515:1楼2021-04-15 08:37:49
  • 理解的透彻,值得去学习。

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(0)

      
    收起
    我对硬件中断的理解
    • 收藏

    • 有帮助

    • 回复
    回复
     *帖子内容
    上传附件要求

    1. 文件大小:上传文件的大小请限制在1M以内。

    2. 文件格式:请不要上传.exe文件,系统支持的格式有:.jpg, .jpeg, .pdf, .gif, .zip, .rar, .doc,.docx, .xls,.xlsx, .ppt, .mp3, .wma, .wmv .asf, .avi, .bmp, .png, .txt, .7z

    发布帖子
    • 分享帖
    • 故事帖
    • 技术探讨帖
    • 求助帖
    • 西家杂谈
    • 投票帖
    邮件
    只看
    楼主
    只看
    精华
    只看
    精编
    发帖
    回复
    二维
    码
    ×
    ◆
    扫描打开手机版

    全球技术资源

    • 推荐文档
    • 新手必读文档
    • mySupport
    • 常问问题
    • 手册
    • 应用与工具
    • 证书
    • 软件
    • 产品通知
    • 特性曲线
    • 技术数据
    • 订阅文档 

    取证训练营

    • 首页
    • 取证训练营
    • 精品课程
    • 证书查询

    技术论坛

    • 首页
    • 发帖
    • 精华贴
    • 高赞帖
    • 分享帖
    • 当前热门
    • 为您推荐
    • 最新发帖
    • 季度标兵
    • 精华之星
    • 用户荣誉榜
    • 我的关注

    找答案

    • 首页
    • 精华问答
    • 高赞问答
    • 有奖问答
    • 全部已解决问题
    • 待解决问题
    • 待推荐问题
    • 快侠榜
    • 上周排行
    • 总分排行
    • 历届夺魁答侠

    产品入门新手必读

    • 首页
    • S7-200产品入门
    • S7-1500产品入门
    • PCS 7产品入门
    • WinCC产品入门
    • MM4系列变频器产品入门
    • S120变频器产品入门
    • SINUMERIK 808D产品入门
    • 国产V系列变频器和数控产品入门
    • 网站新手必读

    售后服务

    • 售后服务简介
    • 服务网络及联系方式
    • 提交服务需求
    • 查询服务进程
    • 下载服务登记表格
    • 我的售后服务信息
    • 售后服务常见问题
    • 服务合作伙伴
    西门子中国  © 西门子(中国)有限公司 1996 – 2021  企业信息   隐私政策  使用条款  京ICP备06054295号  京公网安备 11010502040638号

    系统提示

    新密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    确认密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    取消 确定

    系统提示

    手机号
    验证码
    获取验证码
    暂不验证
    绑 定

    系统提示

    新密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    确认密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    取消 确定

    验证码登录

    密码登录

    获取验证码

    未注册手机验证后自动登录,登录即代表同意
    《支持中心网站注册协议和隐私政策》

    微信登录
    获取验证码
    忘记密码 没有账号?立即注册
    微信登录
     

     短信登录

     

    获取动态密码

     

    登录

     

    ×
    立即
    签到
    已签到
    已签到0天
    累计可抽西币次数:0次抽奖机会
    累计可抽大奖次数:0次抽奖机会
    信息提示
    很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。
    编辑推荐: 关闭

    请填写推广理由:

    正在加载...
     
    发分享帖
    爱工控,乐分享,
    分享您的经验与案例
    发故事
    发表您的精彩故事,
    参与征文活动
    技术探讨帖
    阐述您的观点,
    表达我的看法
    西家杂谈
    海侃天南地北,
    闲聊工控世界
    发求助帖
    求道解惑,“刨根问底”
    解决问题
    发投票帖
    邀投票,做调查,
    网友帮您来作主