【求助】请教一下三菱GX WORK3的子程序的用法? 点击:416 | 回复:5



林斌111

    
  • 精华:0帖
  • 求助:11帖
  • 帖子:11帖 | 17回
  • 年度积分:60
  • 历史总积分:175
  • 注册:2017年2月11日
发表于:2024-08-03 23:15:23
楼主
求助帖100分-已结帖

最近从西门子转到三菱PLC编程,发现一些用法和技巧,也有点疑问,所以求助一下大家。这次请教子程序的一些用法。


用法1:同事发给我的程序,他的框架是这样搭的,在程序--扫描---MAIN程序下,新建了几个程序块,分别取名auto,manual,parameter,failure等,分别代表自动,手动,参数,故障各个程序块。这种用法相当于都是OB1主程序,按给定的扫描先后顺序从下到下逐行执行。以前我也是这样弄的。如图

1.jpg


用法2:我想试试别的用法,就是在程序--FB/FUN下面新建几个FC函数,分别取名自动,手动,参数,故障。这几个FC函数我全部采用全局变量。让他们几个FC函数成为“子程序”,在扫描的MAIN程序里都只调用1次(绝不调用第2次)。如图

2.jpg



问题1:上面第1种用法我知道是很成熟的,四平八稳,我看到同事都是这样用的。主要是想开阔一下多了解下, 请问上面第2个用法可靠吗,FC函数对程序指令和全局变量以及标签之类有没有什么限制吗?程序监控等方便吗?有哪些弊端?


问题2:我记得还有一种真正最正宗的子程序用法,就是在主程序END后面,再添加P10(手动)---SRET结束,P11(自动)----SRET结束,P12(参数)----SRET结束。 然后在上面主程序中用CALL指令调用这些子程序。这种调用子程序的程序结构是不是基本淘汰了,好像没有什么人用他了?这种有什么优缺点?

3.jpg



问的有点多,都是一些基本的知识,见笑了,莫怪多多包涵,谢谢。



 






yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10365回
  • 年度积分:2769
  • 历史总积分:52915
  • 注册:2005年4月22日
发表于:2024-08-05 09:04:37
1楼

1、第二种方式是否可靠取决于程序员是否可靠,可以确保所有的全局变量中的值都是程序员想要的值。程序的弊端在于,无论程序员的水平多高,都会被认为菜鸟,原因FC中不应使用外部变量。


2、通过CALL调用子程序的方式并未淘汰,只是针对的机型不同,例如GX Works2中的简单工程方式仍然可以采用这种方式,如果你有足够的三菱PLC需求的话,三菱也可以为你开发可以使用这种方式的特定版本。


HAVE FUN!

回复本条

    

y760616450

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2011年4月09日
发表于:2024-08-06 11:27:16
2楼

学习了

回复本条

    

创金自控

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 555回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2021年7月12日
发表于:2024-08-06 17:13:00
3楼

谢谢分享

回复本条

    

20240811202849

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:116
  • 历史总积分:116
  • 注册:2024年8月11日
发表于:2024-08-11 20:33:30
4楼

感谢分享

回复本条

    

Smile-lyc

  • [管理员]
  • 精华:136帖
  • 求助:54帖
  • 帖子:3608帖 | 23009回
  • 年度积分:1358
  • 历史总积分:162349
  • 注册:2006年8月04日
发表于:2024-09-21 10:18:29
5楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。

4、2024龙年加油!龙年棒棒!


回复本条

    

热门招聘
相关主题

官方公众号

智造工程师