回复:置位变量问题

lion_zheng

  • 帖子

    251
  • 精华

    5
  • 被关注

    9

论坛等级:侠客

注册时间:2005-03-04

普通 普通 如何晋级?

发布于 2014-04-02 23:43:56

3楼

变量应该置位但没有置位,可能原因有
1、干扰,我们不考虑
2、压根没被置位
3、只为了又被复位了

我们一个一个排除
原因1、不考虑

原因2、没被置位
程序是不是在BackGround里面执行?BackGround执行周期多长?
假设你的执行周期8ms,然后出现了一个2ms的信号,有可能程序没反应的。
因为硬件的刷新时间可能比BackGround块。而Trace也比BackGround快。

原因3、置位了又被复位
只能够是"ob_valve"发生了改变,您如果Trace过,就能排除这个可能。

建议1:
所以我觉得原因2最大,为了确定这个问题。
可以建个变量,i32_CommandCounter,
放在 var_b:=true;下面
i32_CommandCounter:=i32_CommandCounter+1;这样可以检查命令是否真的执行了。

建议2:
您的传感器信号可能很快,很短暂。
如果确定传感器信号 > ipo周期,那么把程序放到ipo程序里去执行。

建议3:
如果传感器信号可能小于ipo周期,需要用Measuring Input.
把Measuring input放到任何一个轴下面,程序里使能Measuring input.
然后用Measuring input里面的Counter Value(就是个计数器)的值,取个上升沿来作触发。
http://www.cnblogs.com/lion-zheng/
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMOTION

共有2227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

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