您现在所在的是:

PLC论坛

回帖:4个,阅读:801 [上一页] [1] [下一页]
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2023/2/14 8:19:20
#0楼
0208 【万泉河】终于被松下PLC打败

2月2日上周四,进行了LBP培训课程讲座的第一课,生成了课件,已经参加的学员如果在当堂没有听懂看懂,可以再参考课件内容,逐步自己实现。 所以, 如果没有来得及报名而想要学习LBP的同行,也仍然随时可以报名参加。 就不需要等开课时间了,直接一步到位收到课件,跟随课件学习。

总的来说,我做LBP的培训就是手把手带大家演练如何实现LBP的应用。 做好了一次, 以后就永远有用。

那么一些入行还不够深, 现在还没有认识到自己有学习使用LBP的需求的,可以在将来,比如N年之后发现了自己达到了那个层级了,想要使用LBP框架,却发现自己掌握LBP有困难的时候,再来报名学习也不迟。

而我自己, 完成第一堂课之后到现在销声匿迹了将近一周时间,做啥去了?

做松下PLC的标准化去了。

松下FP-XH PLC的编程软件FPWIN PRO7,我以前研究过,只是确认了可行性,就没有继续再做。

所以,在培训课程的栏目里, 要求的是先学习OMRON或者三菱的标准化, 然后自行研究升级到松下PLC实现。

然而我忽视了系统软件平台的性能,或者说没能参透松下软件开发者的脑回路,然后闹了乌龙,翻车了。

起因是这样, 有一个同行,数次跟我联系想学烟台方法, 然而对我提及的不管西门子还是欧姆龙,三菱都不感兴趣。因为他全都没有碰过。现在的公司只使用松下FP-XH的PLC。 所以要他先去学会其他品牌,再学透,再学会在松下PLC的应用,就有点难度太大。

于是他就提出先交一半定金,等我专门做成松下PLC的标准化程序之后,再付另一半。

也寄了一台他手头的PLC硬件给我,供我开发时测试用。 正好,讲座完成的次日,就收到了快递,所以就开始做烟台方法的程序迁移了。

这位朋友不会ST编程语言,只会梯形图,为了方便他将来的学习理解,我就没有从现成的ST程序中移植,而是从头用LAD搭建的FB块库函数。 当然, 参照了一部分SMART200的烟台方法的程序,以及《三菱PLC标准化编程烟台方法》书稿的样例程序以及我进一两年写的文章中提到的一些库函数。

差不多3天时间,底层库函数基本完成, 然后分别建立了一些实例,开始拼装,开始准备做自动部分了。

然后就发现了问题。

编译不通过,报错误为:
错误:PLC中没有足够的可用子程序数量,请删减调用的用户自定义的FUN和FB的数量,或改变成具体有更多子程序的PLC机型。

被这个错误提示直接给干懵逼了。 分析了很久后找到了原因。

原来松下PRO7的平台,在编译我们做的FB/FC程序的时候,并不是给做成真正意义上的重复调用的函数,而是对每一次调用,都给把参数的实际变量的地址代入,做了个一次性的函数跳转。即一个FB如果调用10次,那么就生成了10个不同编号的SUB, 分次调用。

就好比, 你总结了一个A+B+C=D的数学公式,但到了松下的系统里面,他不给你列公式,而是把可能用到的算式全部给列在里面了:
1+1+1=3
1+2+3=6
2+2+2=6
2+3+4=9
3+3+4=10
等等等等。
原本,这种方法除了浪费一点程序空间,编译代码量增大之外,别的也无所谓。然而FP-XH的PLC, SUB的编号最大只到255,即最多只能有256个函数调用。

这就难倒我了。
标准化的基础是程序功能的模块化,通过把相同的功能封装成块,通过重复调用,减少了咱们人工的重复工作量。

比如,我现在比较在意的一个数据格式是设备时间参数格式都使用以S为单位的浮点数。这样在数据交互过程中就少一个数据类型和数据转换的过程。

所以,我通常开头第一步,是对原本定时器功能做一个封装, 设定值和运行值都改为浮点数,然后程序块中所有需要用到定时器的地方,统一使用自己新封装的定时器。

有人一直对烟台方法不理解,以为我在推行强制编程标准。 其实如果有的话,对定时器数据格式的统一,可以算作一项,可能也是仅有的一项了。 但也只是对我自己和烟台方法学员的一种劝导倡议。

这在平常的PLC系统,原本都没有问题的。 然而到了松下,问题就出来了。

我这种对定时器的封装方法,如果对应倒到过去传统垃圾程序的写法,一套系统用到256个定时器会把定时器资源耗光的话,我这里就是一步到位同时把子程序资源也耗光了。 得,我啥子程序都不用写了。 还做什么模块化,标准化!

如果我现在真的要做这样的项目,那方法就是把所有的封装全部拆掉, 比如定时器,所有程序中用到的地方,再不厌其烦地前面加入REAL到TIME的转换, 后端需要监测运行值ET时再做TIME到REAL的转换,程序不做嵌套,所有FB块都一气呵成,大概也能做成标准化的架构。

那对我来说就太恶心了。

原本, 松下PLC还有个旧一点的软件FPWIN GR7,同一款PLC也仍然可以在那个平台上编程, 那个平台是和我研究过的信捷XD一样,没有现成的FB/FC功能,所谓子程序全年都靠着跳转来实现的。 我如果非要自己部署规划,和当时在信捷中实现的一样的方法,也能做好。

然而也会吃和信捷同样的亏。信捷XD PLC新版软件开始具备了FB/FC功能,我做的超前研究价值被清零了,而松下这里既然已经有了高版本的软件,如果我在低版本里面做,那么只要厂家随时把PRO7的软件做个升级,改变编译方法,比如到PRO8之后这个问题就解决了,那我就又白做了。

所以,思考一个晚上后,昨天早上还是跟对方工程师联系,退款给他了。

认败,才是更好更体面的退出方式。

由此我想到了历史上曾经的WINTEL联盟, 微软和英特尔两家公司互相配合互相促进和提高,互相给对方提出更高的需求,而自己提供更高级的产品,最终促进了整个IT行业的飞速发展。

而在工控行业,需要有更多和我一样的PLC应用工程师,从应用角度,对PLC厂家软硬件平台提出更贴合应用实际的需求,他们改进提高之后,也可以促进提高我们的应用水平。

由此实现相得益彰的TIKTOK滴答。

所以,总有一些同样的PLC应用工程师, 从个人声誉的角度要争什么行业大佬资格, 从而互相碾压攻击,你们如果有那样的理想, 不如多做些基础的研究工作,提出更高的问题,为行业集体发出一些呼吁的声音,最终才能促进行业的发展。 想争第一的名份的, 先看看自己手里有多少翻车的教训,有提出过多少新的理论方法贡献给行业。

我一个人的声音显然太微弱了些。



PLC标准化编程
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/2/14 12:34:05
#1楼
凡是都有度,在做事前不看资料也就罢了
不听别人的就是自大了

在你探讨欧姆龙FB时就说过有使用次数限制

西门子的也不可能没底线
快乐 幸福 自由 比什么都重要
20904
bnnyygy
文章数:5988
年度积分:1570
历史总积分:20904
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/2/14 13:56:17
#2楼
其实吧,FB FC 功能块这些,编程是方便,但是有个致命的问题,


PLC循环时间加长。

同样功能的程序,不用FB FC 功能块这些,2ms左右,

如果全部用功能块,循环时间能到5ms。


~~~但是我也用功能块,因为,同类型设备程序改改就能用表情
12456
蛇会大学
文章数:4613
年度积分:782
历史总积分:12456
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2023/2/19 15:16:35
#3楼
把程序发上来,我们给你想想办法
敏问找算丁亏楼累
敏问找算哭哲累嘿
敏问够算恐哈做累揍忍没催妹
比漏累伤醒更八音舍黑
我晕能以身问晕陪笨累
23509
mengx9806
文章数:10974
年度积分:1248
历史总积分:23509
注册时间:2011/5/16
发站内信
2018论坛热心网友
2018春节活动(三)
工控人谈电商
发表于:2023/2/21 7:35:26
#4楼
以下是引用bnnyygy2023/2/14 13:56:17的发言:
其实吧,FB FC 功能块这些,编程是方便,但是有个致命的问题,


PLC循环时间加长。

同样功能的程序,不用FB FC 功能块这些,2ms左右,

如果全部用功能块,循环时间能到5ms。


~~~但是我也用功能块,因为,同类型设备程序改改就能用表情
对程序要求不严格,一般也都不会出问题;但是PLC循环时间确实是存在的一个问题,曾经的现场有人就解决不了西门子的这个问题。
再说松下的编程软件,就即几十M,满足很多场景的使用的;对比西门子,动不动就是几十个G的编程软件,还是有优势的。
喜欢一句广告语:世界再大,也大不过我35码半的脚步。但是我的世界里,如何才能追到那
逝去的青春年华?

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004