技术论坛

子程序同时被多个调用无法正常运行

作者 主题
游士

经验值: 242
发帖数: 15
精华帖: 0
主题:【求助】子程序同时被多个调用无法正常运行


只看楼主 楼主 2021-10-23 17:03:07

大家好:

    小弟在调试过程中发现问题,所做的子程序 单个调用时候没有问题可以正常运行,但是多个同时调用就会出现问题,不能正常输出。

    后来发现问题主要出现在 计时器这一段,但不知道是何原因:

  考虑到 程序需要重复调用,特地将计时改用 优化的计时器的方式(BGN-ITIME、CAL-ITIME指令)

   

PLC程序-计时器ms.zip

子程序如下图,开始计时达到设定的时间后,输出 计时完成的状态

(以下为了方便查看 特地省略了其他动作流程)


---------

只调用一个的时候 ,可以正常运行


两个同时调用时,V100.1&V100.4不得电.程序无法正常运行了,程序2中V100.5始终不会得电


只有两个子程序的输入条件V100.1、V100.4(开始)都有信号时候,两个子程序的输出 V100.2、V100.5会同时输出

---

程序有何问题以及如何改进 还请大家指正[抱拳][抱拳][抱拳]




 
以下网友喜欢您的帖子:

  
重要声明:

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

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

奇侠

经验值: 8881
发帖数: 542
精华帖: 4
回复:子程序同时被多个调用无法正常运行


只看楼主 1楼 2021-10-23 17:14:52

沿触发不能用,要拿出来


吾生也有涯,而知也无涯。
以下网友喜欢您的帖子:

  
至圣

经验值: 67548
发帖数: 14783
精华帖: 100
回复:子程序同时被多个调用无法正常运行


只看楼主 2楼 2021-10-23 19:14:53

LD10可以这么用。这就叫做先赋值了。但是LD6就不可以这么用了。它没有先赋值。你能理解其中的区别吗?LD6就要用in/out。BT不执行是没有值给到LD6的。LD6会有别的子程序使用,值会被改变的。这个LD6极大机会就是那个LD6。

不信你可以试试。在主程序里调用两个子程序。一个子程序向LD56mov进去一个12345。另一个子程序把LD56的值mov出来到MD0。你看看会怎样?两个子程序什么参数都不带。

你的程序中P触点没有接通LD6自然没有写进去有用的值。后面的比较触点不接通,线圈就会off。这个off是必然的。而前面的LD6是不确定的。两个情况都是触点不通,但是一个是确定的,一个是不确定的 。

你把ld6改成in/out,把边缘指令用触点逻辑写。

LD     I0.0

LPS

AN     M0.0

=      M0.1

LPP

=      M0.0

上面的m0.1就是I0.0的上升缘。(下降缘自己想)你把M0.0也做成IN/out就可以了。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1534
发帖数: 217
精华帖: 0
回复:子程序同时被多个调用无法正常运行


只看楼主 3楼 2022-08-14 15:45:57

是自制定时器子程序吗?如果是,直接搞个给你,几年前我记得我写过一个。10ms或者1ms时基的子程序


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1801
发帖数: 338
精华帖: 0
回复:子程序同时被多个调用无法正常运行


只看楼主 4楼 2022-08-15 08:38:02

多次调用同一个子程序时!把第一个子程序名字_1 第二个子程序名字_2


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67548
发帖数: 14783
精华帖: 100
回复:子程序同时被多个调用无法正常运行


只看楼主 5楼 2022-08-15 09:11:16
以下是引用forginger在2022-08-15 08:38:02的发言 >4楼

多次调用同一个子程序时!把第一个子程序名字_1 第二个子程序名字_2

那就不叫多次调用了。这改个名字没用的。那里面的地址是不是全部都改一遍?


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1801
发帖数: 338
精华帖: 0
回复:子程序同时被多个调用无法正常运行


只看楼主 6楼 2022-08-16 11:16:20
以下是引用芳季在2022-08-15 09:11:16的发言 >5楼

那就不叫多次调用了。这改个名字没用的。那里面的地址是不是全部都改一遍?

以下是引用forginger在2022-08-15 08:38:02的发言 >4楼:多次调用同一个子程...

引用4楼详细内容:

多次调用同一个子程序时!把第一个子程序名字_1 第二个子程序名字_2

复制子程序 黏贴子程序_1 黏贴子程序_2 这样不容易出现BUG


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67548
发帖数: 14783
精华帖: 100
回复:子程序同时被多个调用无法正常运行


只看楼主 7楼 2022-08-16 17:44:43
以下是引用芳季在2022-08-15 09:11:16的发言 >

那就不叫多次调用了。这改个名字没用的。那里面的地址是不是全部都改一遍?

楼上。按钮启停接触器自锁这个程序。你试试复制两个然后控制两个电机启停,看看能行不?只改一个子程序的名称,别改两个程序的地址啊。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
子程序同时被多个调用无法正常运行
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。