技术论坛

 西门子200 smart PLC几个“绝端”状态下的测试

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 71966
发帖数: 8035
精华帖: 145
楼主    2019-01-11 08:10:44
主题:西门子200 smart PLC几个“绝端”状态下的测试 精华帖 

西门子200 smart PLC几个“绝端”状态下的测试

   今天在“找答案”栏目看到有这样一个提问,提问大致描述:在OB1主程序中,当输入10.0将要使能前,中断触发条件满足了被优先调用去执行中断,当中断执行完毕离开时,这时输入I0.0使能信号也“同时”也离开了。问,这时的I0.0在主程序段还有效?

提问链接:http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=209691&cid=1072#

其实,这个问题已经很显然了,在OB1主程序中的程序段扫描(采集)I0.0是没有得到有效使能的。首先,在OB1主程序网络中I0.0(将要被使能),说明此时该点信号并没有被输入刷新,而当被执行中断时和中断执行完毕后,该输入I0.0使能已经离开,说明仍然没有被使能的。那如果同时被使能呢?情况会咋样,为验证这个环境下的真实结果,唯有进行验证、测试才能够理解明白。

测试步骤:

1)  初始化调用程序的地址区,确保调用程序的地址值自初始开始;

2)  定义一个外部输入中断,中断事件0#的I0.0外部上升沿中断、指定中断子程序INT_0;

3)  连接一个外部的I0.0硬件输入;

程序:


当I0.0捕捉到一个上升沿时,首先优先触发中断。在中断子程序中先在VB0加1,然后,复位M0.0。复位M0.0的目的是为了“同时”触发I0.0有效时,让OB1的I0.0上升沿有效,由I0.0重新触发一次M0.0产生的上升沿脉冲,当然,直接用I0.0替代M0.0的效果是一致的。

中断子程序:


验证结果,同时使能I0.0时,中断及上升沿触发均有效。

VB0 = 2的累加过程:

当OB1捕捉到I0.0上升沿信号时,先处理中断子程序,使VB0 = 1,中断返回到OB1时,系统捕捉上升沿脉冲时,VB0 = 1+1 = 2。也就是说VB0在一个周期内被执行“加”了2次的程序。

下面2个程序的比较,可以明显看出中断程序的优先效果了。

没有将中断程序的条件添加到循环指令时的程序:


添加中断程序处理结果后的程序:


可见,cpu先执行外部上升沿中断程序后,将M0.2使能,“切断”了INC_DW指令的累加条件,而并非是没有执行循环体指令。

验证结果小结:

    当中断及上升沿在同一个周期内同时被触发,显然,是先执行中断程序内的优先,中断执行完毕后,把中断运行后的结果值传送到OB1再继续执行其余的程序段。这个结果应该可以让那位网友理解最基本的plc工作机制了。


不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
1楼    2019-01-11 08:26:06
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

感谢分享。

邮箱 yongquancun@126.com
华山松柏
奇侠

经验值: 5622
发帖数: 541
精华帖: 3
2楼    2019-01-11 12:00:19
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

楼主辛苦,谢谢分享。

学无止境
20211111
奇侠

经验值: 7766
发帖数: 1150
精华帖: 1
3楼    2019-01-11 12:41:39
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

 不错,挺好,学习了,

,,
lf184452
侠圣

经验值: 2440
发帖数: 467
精华帖: 6
4楼    2019-01-14 09:56:46
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

 在一个扫描周期内,只要不是立即读外部信号改变是不会影响主程序的,因为输入映像要到下个周期才更新,立即读的话要看实际的P指令有没有被执行完,另外中断程序肯定是优先普通程序的。

HUANGZE75
至圣

经验值: 63463
发帖数: 12670
精华帖: 121
6楼    2019-01-14 16:46:01
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

王工辛苦了,对技术的追求永无止境啊,学习了,点赞。

笑脸相迎
侠士

经验值: 1905
发帖数: 252
精华帖: 2
7楼    2019-01-15 10:30:41
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

 中断程序调用时选取I0.0的外部上升沿,这个上升沿是滤波完成后的映射区信号还是实时的信号?

Day Day Up~~大名丁丁
WWCWWC
至圣

经验值: 71966
发帖数: 8035
精华帖: 145
8楼    2019-01-15 10:39:52
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

正在写关于立即输入与输入滤波时间的关系的帖子。

   因为还没有找到一个比较合理的例子说明,昨天晚上写了测试没有达到我要的程序。

根据我测试出来的初步结果,这个滤波时间与输入响应速度是没有本质上的关联,带找到合适的程序会说明这些问题的。

xfj7818
游士

经验值: 176
发帖数: 34
精华帖: 0
9楼    2019-09-09 23:56:44
主题:回复:西门子200 smart PLC几个“绝端”状态下的测试

学习了,王工辛苦了!

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。