技术论坛

请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应

作者 主题
游士

经验值: 212
发帖数: 48
精华帖: 0
主题:【求助】请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 楼主 2021-04-17 19:02:32


师傅们请教一下,为什么上升沿之后没有反应,前面执行正常,但是P ADD 没反应,就算另起一行一样没有作用


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1691884&b_id=64&s_id=0&num=7

至圣

经验值: 76198
发帖数: 19143
精华帖: 378
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 2楼 2021-04-17 21:04:33

V100.2的上升沿初始化了一个指针,地址VB4650

V100.1条件满足,先把ip6_GotoCPos变量送到指针指向的变量VD4650中去,这是个实数,接下来做一次指针指向的变量VD4650加一个整数4送回VD4650。

程序再次扫描会有变化吗?


楼主的浆糊太厚,孙悟空的金箍棒也搅不动呀!



Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
至圣

经验值: 17189
发帖数: 2946
精华帖: 6
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 1楼 2021-04-17 20:33:18

 编程软件中的上升沿指令肯定是正确的。

V100.1的电平有没有从0到1变化?只有这个变化过程才会产生上升沿,并且只在一个扫描周期起作用。V100.2同理。


 
以下网友喜欢您的帖子:

  
版主

经验值: 25993
发帖数: 11808
精华帖: 43
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 3楼 2021-04-17 21:28:28

从本例可知,楼主对于PLC的工作原理的理解,依然停留在原地。

这和以前发的贴子,试图在一个for循环中,完成多个运动,没有本质区别。


PLC的程序,不管你有没有for,都是不断循环再循环,有始无终的过程。


本例问题也一样,如Zane如说。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 76198
发帖数: 19143
精华帖: 378
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 4楼 2021-04-17 21:33:41

典型的梦游程序!


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
游士

经验值: 212
发帖数: 48
精华帖: 0
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 楼主 5楼 2021-04-18 06:17:10
以下是引用Zane在2021-04-17 21:04:33的发言 >2楼

V100.2的上升沿初始化了一个指针,地址VB4650

V100.1条件满足,先把ip6_GotoCPos变量送到指针指向的变量VD4650中去,这是个实数,接下来做一次指针指向的变量VD4650加一个整数4送回VD4650。

程序再次扫描会有变化吗?


楼主的浆糊太厚,孙悟空的金箍棒也搅不动呀!


嘿嘿,我知道了,我已经找到原因了,指针搞错了+了个*号,指针偏移与传参同时并发结果传参的时候出现及时传参并传送到两个指针变量中,我在指针传参的地方加了上升沿,在后面输出下一步,下一布在添加上升沿在做指针偏移           这样解决了正常运行问题,谢谢各位  基础差,正在学习中


 
以下网友喜欢您的帖子:

  
游士

经验值: 212
发帖数: 48
精华帖: 0
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 楼主 6楼 2021-04-18 06:20:47
以下是引用yanxiao在2021-04-17 21:28:28的发言 >3楼

从本例可知,楼主对于PLC的工作原理的理解,依然停留在原地。

这和以前发的贴子,试图在一个for循环中,完成多个运动,没有本质区别。


PLC的程序,不管你有没有for,都是不断循环再循环,有始无终的过程。


本例问题也一样,如Zane如说。

嗯,谢谢版主的提醒,我现在已经了解了PLC的运行机制,而且FOR是为了让数据快速计算用的,PLC的扫描机制从上至下,从左到右, 而且程序在运行过程中需要有启动条件 及结束条件 运动过程中如果连续GOTO需要带一丢丢的延迟,版主别再提FOR了


 
以下网友喜欢您的帖子:

  
版主

经验值: 25993
发帖数: 11808
精华帖: 43
回复:请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应


只看楼主 7楼 2021-04-18 08:53:56

PLC执行程序,的确是从上到 下,从左至右的顺序执行,这个过程称为扫描。

PLC从第1个指令一直执行到最后一个指令,称为一个扫描周期。

一般PLC的扫描周期时间,因程序大小、复杂程度不同,在数ms至数百ms之间,数ms的程序反应很灵敏,而数百ms的扫描周期,外观表面就很迟钝了。


假如说,你的程序不大,扫描周期很短,5ms吧。

第N次扫描时,V100.1=0

第N+1次扫描,V100.1=1,此时网络2的MOV_R执行,ADD_DI因存在一个上升沿,也执行;

第N+2次扫描,V100.1是多少?如果你不是有意将它复位,我想它还是=1。5ms之后,PLC再次扫到 第2个网格,V100.1=1,MOV_R执行,把pos值又传一次,之前ADD_DI的结果给覆盖,下面的ADD_DI,因不再存在上升沿,不再执行ADD_DI操作。

对于人的反应来说,5ms,太短了,根本察觉不到 ADD_DI曾经执行过一次。



 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
请问为什么P上升沿的地方没作用,试了很多遍,就算另起一行+p 在ADD同样是没反应
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。