zxymnp
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 268 点
下载积分: 958 分
在线时间: 52(小时)
注册时间: 2007-03-12
最后登录: 2024-09-19
查看zxymnp的 主题 / 回贴
楼主  发表于: 2009-04-02 09:03
       我实验程序调用指令时编了下面程序段仿真,但在程序文件间调用带参数的子程序时,刚进入仿真执行中,main程序中X2还未为ON时MAIN1中的P3子程序就开始执行[了。这是为什么呢?
下面是用Q02H编的实验指令。由2个程序块组成:main 和main1.
[ 此帖被zxymnp在2009-04-02 13:09重新编辑 ]
附件: 带参数的程序调用.rar (11 K) 下载次数:10
网站提示: 请不要用迅雷下载附件,容易出错
zxc6688
工业自动化是我们的目标
级别: 略有小成
精华主题: 1 篇
发帖数量: 385 个
工控威望: 338 点
下载积分: 3994 分
在线时间: 174(小时)
注册时间: 2007-09-11
最后登录: 2024-01-05
查看zxc6688的 主题 / 回贴
1楼  发表于: 2009-04-02 10:31
M0 =ON,对应的FX0接通,P3里的程序会运行(扫描运算的结果,不调用P3,并不表示不扫描P3)

你把变量M0放在发起调用的程序里即可。

不知对否?

我把你的梯形图附上,请高手解答

MAIN





MAIN1

  
[ 此帖被zxc6688在2009-04-02 14:11重新编辑 ]
http://zxc6688.ys168.com/
zxc6688
工业自动化是我们的目标
级别: 略有小成
精华主题: 1 篇
发帖数量: 385 个
工控威望: 338 点
下载积分: 3994 分
在线时间: 174(小时)
注册时间: 2007-09-11
最后登录: 2024-01-05
查看zxc6688的 主题 / 回贴
2楼  发表于: 2009-04-02 14:10
引用
引用第2楼zxymnp于2009-04-02 11:15发表的  :
谢谢哦!你说的是把m0放在MAIN1里或直接放在P3 里吧,如果对于扫描主程序中只有一次调用可以,如果多次调用而且传递的不仅仅是m0,那怎么办啊?
可能出现了一次         [  ECALL  "MAN1"     p3     M0]
              后面又出现了    [ECALL   "MAIN"       p3     M10]



我是说跟调用指令放在一起,也就是在你的程序的X2触点后,
如果后面又出现了    [ECALL   "MAIN1"       p3     M10],你的P3里的FX0是不会接通的吧。
你把[  ECALL  "MAN1"     p3     M0]  的 M0 改成 M10 试试
本帖最近评分记录:
  • 下载积分:+1(zxymnp) 热心助人!
  • http://zxc6688.ys168.com/