技成培训网论坛

 找回密码
 立即注册
查看: 413|回复: 0
收起左侧

西门子S7-1200 SCL沿指令陷阱

[复制链接]
发表于 2020-10-14 18:19:32 | 显示全部楼层 |阅读模式

您正在浏览的页面需要登录,为了提高您的阅读体验,请在右上角登录您的账号!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
近期做个项目,程序执行结果和预想的不同,主要是沿指令不按预想的去执行。因此单独把沿指令单独拿出来做个测
试,项目用的是这样:
IF"Tag_2" THEN
"R_TRIG_DB"(CLK := "Tag_2",
=>"Tag_3");
IF"Tag_3"THEN
"Tag_4":=TRUE ;
END_IF;
END_IF;
后改为∶
"R_TRIG_DB"(CLK := "Tag_2",
=>"Tag_3");
IF"Tag_2”" THEN
IF"Tag_3" THEN
"Tag_4":=TRUE ;
END_IF;
END_IF;
程序的本意是:"Tag_2”接通的上升沿先做初始化处理,而后再处理其它逻辑,其它逻辑需要多个处理周期。实际上
只有"Tag_2"第一次接通时逻辑处理结果正确。后把沿指令提到判断条件前,即判断语句的外面,程序运行正常。
原因分析:沿指令内部保存CLK端信号的位,在执行该指令时改变。在IF语句中使用时,CLK信号仅在第一次运行时
与沿指令内部保存位不同。以后沿指令内部保存位与CLK信号都相同,所以沿指令就不会触发。
总结:
在SCL中使用沿指令要保证每个周期都会扫描的该指令,在判断语句,或其它包围指令中使用沿指令要格外小心。
来源:西门子工业技术论坛


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|技成培训网论坛   粤ICP备11069432号-1

GMT+8, 2021-11-27 19:56

Powered by jcpeixun X3.3

© 2007-2021 深圳市技成科技有限公司

快速回复 返回顶部 返回列表