何启海
级别: 略有小成
精华主题: 0
发帖数量: 263 个
工控威望: 383 点
下载积分: 1358 分
在线时间: 139(小时)
注册时间: 2017-02-20
最后登录: 2024-05-15
查看何启海的 主题 / 回贴
楼主  发表于: 2023-07-23 14:34
话说中断大家都用过,一般逻辑程序都是放在主程序里面,这时候降低程序的扫描周期,有没有谁把程序写进中断里面的啊,例如西门子中大型机,直接把FC块拉进OB中断里面。例如中断时间设置成10ms,这时候疑问来了,例如原本程序需要80毫秒扫码一次,把所有的块都拉进中断里面时,是10ms扫码一次,还是80ms扫码一次呢?
曾以为80毫秒的扫描时间很短,但是到达执行元件时已经是轻舟已过万重山了。
塞外海岛
不停的前进
级别: 家园常客
精华主题: 0
发帖数量: 476 个
工控威望: 621 点
下载积分: 1419 分
在线时间: 1396(小时)
注册时间: 2012-10-05
最后登录: 2024-05-14
查看塞外海岛的 主题 / 回贴
1楼  发表于: 2023-07-23 19:07
扫码和执行是两回事,你这上学单片机学的太差了
投湖自尽的鱼
级别: 略有小成
精华主题: 0
发帖数量: 301 个
工控威望: 348 点
下载积分: 1273 分
在线时间: 270(小时)
注册时间: 2020-10-23
最后登录: 2024-05-15
查看投湖自尽的鱼的 主题 / 回贴
2楼  发表于: 2023-07-24 08:43
在中断里面就是按照中断的10MS来运行的,原扫描执行过程中会中断来执行中断程序
卓发智能
相互学习,共同进步。
级别: 工控侠客
精华主题: 0
发帖数量: 2317 个
工控威望: 2895 点
下载积分: 6401 分
在线时间: 614(小时)
注册时间: 2008-08-03
最后登录: 2024-05-10
查看卓发智能的 主题 / 回贴
3楼  发表于: 2023-07-24 09:24
中断10mS就是10ms,不存在累加的问题。
相信自我!
chenhaot
chenccc
级别: 略有小成
精华主题: 0
发帖数量: 145 个
工控威望: 217 点
下载积分: 1282 分
在线时间: 105(小时)
注册时间: 2020-08-20
最后登录: 2024-05-15
查看chenhaot的 主题 / 回贴
4楼  发表于: 2023-07-24 14:04
记住中断不受扫描周期影响就行
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 664 个
工控威望: 1042 点
下载积分: 139 分
在线时间: 535(小时)
注册时间: 2019-09-22
最后登录: 2024-05-15
查看gxtmdb82164的 主题 / 回贴
5楼  发表于: 2023-08-01 15:38
主要还是现在PLC的速度足够快,绝大多数情况下没有中断重入的问题,加上本身PLC底层会做一定的保护,真在单片机裸机环境下,在中断里面胡写八写,或者中断源没有管理好,遇到中断重入,肯定是会出问题的.

1L的例子其实是非常好的,估计有的人还没看懂,正常循环执行的程序,本身就需要80ms去执行的代码,放到中断中每10ms启动一次,怎么可能执行的完呢?(假设这个80ms是纯粹的程序扫描时间,不是后台处理)

按照大部分小型PLC的编程范式要求进中断以后关总中断,出中断开总中断是一种典型的处理方式(主动丢弃),
还有一些PLC会在底层处理,这个要看手册,一般都是中断挂起的方式(被动丢弃),总之是不能重入的,这个看一下中断嵌套会加深理解
liming2018
级别: 略有小成
精华主题: 0
发帖数量: 225 个
工控威望: 308 点
下载积分: 6406 分
在线时间: 23(小时)
注册时间: 2018-08-08
最后登录: 2024-05-15
查看liming2018的 主题 / 回贴
6楼  发表于: 2023-08-02 12:25
中段10MS就是10MS执行一次中断程序