zxymnp
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 268 点
下载积分: 953 分
在线时间: 52(小时)
注册时间: 2007-03-12
最后登录: 2024-05-15
查看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/
zxymnp
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 268 点
下载积分: 953 分
在线时间: 52(小时)
注册时间: 2007-03-12
最后登录: 2024-05-15
查看zxymnp的 主题 / 回贴
2楼  发表于: 2009-04-02 11:15
谢谢哦!你说的是把m0放在MAIN1里或直接放在P3 里吧,如果对于扫描主程序中只有一次调用可以,如果多次调用而且传递的不仅仅是m0,那怎么办啊?
可能出现了一次         [  ECALL  "MAN1"     p3     M0]
              后面又出现了    [ECALL   "MAIN"       p3     M10]
zxymnp
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 268 点
下载积分: 953 分
在线时间: 52(小时)
注册时间: 2007-03-12
最后登录: 2024-05-15
查看zxymnp的 主题 / 回贴
3楼  发表于: 2009-04-02 13:06
谢谢兄弟帮把程序发出来。寻求更多的解答哦
zxc6688
工业自动化是我们的目标
级别: 略有小成
精华主题: 1 篇
发帖数量: 385 个
工控威望: 338 点
下载积分: 3994 分
在线时间: 174(小时)
注册时间: 2007-09-11
最后登录: 2024-01-05
查看zxc6688的 主题 / 回贴
4楼  发表于: 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/
    zxymnp
    级别: 略有小成
    精华主题: 0
    发帖数量: 130 个
    工控威望: 268 点
    下载积分: 953 分
    在线时间: 52(小时)
    注册时间: 2007-03-12
    最后登录: 2024-05-15
    查看zxymnp的 主题 / 回贴
    5楼  发表于: 2009-04-02 16:16
    小弟还有点疑问:我的 MAIN和MAIN1都设置成扫描程序,在仿真时MAIN中X0未置ON时,(应该未调用P30吧????)
    而把MAIN1中的子程序P0中X3强制为ON怎么Y4就会有输出呢?或直接在P0中设置个秒脉冲输出,就直接能输出。可根本没调用MAIN1中的子程序啊!

        求教!!!!!!
    thatmouse
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看thatmouse的 主题 / 回贴
    6楼  发表于: 2009-04-02 16:44
    你在设置参数里的引导文件设置里把main和main1都插入他们就在同一个扫描周期了,这样你说的问题应该就可以解决了。。。
    楼主留言:
    我按兄弟的办法设置了,在MAIN中的X0没为ON时MAIN1中X3强制为ON时还有输出!我哪里设的还不对吗?????
    zxymnp
    级别: 略有小成
    精华主题: 0
    发帖数量: 130 个
    工控威望: 268 点
    下载积分: 953 分
    在线时间: 52(小时)
    注册时间: 2007-03-12
    最后登录: 2024-05-15
    查看zxymnp的 主题 / 回贴
    7楼  发表于: 2009-04-02 16:55
    引用
    引用第6楼thatmouse于2009-04-02 16:44发表的  :
    你在设置参数里的引导文件设置里把main和main1都插入他们就在同一个扫描周期了,这样你说的问题应该就可以解决了。。。

    我按兄弟的办法设置了,在MAIN中的X0没为ON时MAIN1中X3强制为ON时还有输出!我哪里设的还不对吗?????