用户登陆
免费注册
找回密码
站内短信
论坛搜索
工控下载
用户名
密码
输入验证码:
中奖
综合讨论
资料互助
程序样例
三菱工控
西门子区
欧姆龙区
触摸屏区
工控人家园
综合讨论
【万泉河】征集FB的编程题:获取SID
上一主题
下一主题
万泉河
WX:ZHO6371995,欢迎+
级别: 略有小成
发送短信
加为好友
精华主题:
0
发帖数量:
130 个
工控威望:
246 点
下载积分:
831 分
在线时间: 11(小时)
注册时间:
2021-06-11
最后登录:
2024-11-07
查看万泉河的
主题
/
回贴
楼主
发表于: 2022-01-23 11:00
全看
|
小
中
大
【万泉河】征集
FB
的编程题:获取
SID
我在推广宣传
PLC
编程烟台方法的时候,
总有人疑惑是在做了什么。
讲解是用计算机编程中的面向对象的方法来进行
PLC
编程。
那么在
PLC
中是用什么手段实现的面向对象呢?
回答是用
FB
,
做成库函数应用。
然后对方瞬间就恍然大悟了,
FB
啊,
不是什么新玩意,我们
20
年前就会用了。
你这把
FB
换个高大上的名字,也太能忽悠人了。
原来做标准化就是开发
FB
啊
,
那我们正在做,或者早就在自己做了。你这做的没啥稀奇的。
好吧。
如果对方既没有感知到自身的痛点,
又没有机会见过真正的应用实例,
那说破了嘴皮子对方也想象不出是啥样子。
毕竟,
PLC
编程烟台方法的实现是古今中外开天辟地以来都没有过的,
大部分的
PLC
工程师包括我自己入行开始,都是从模仿入门的,没有完全创新的经验,在没有见过猪跑之前让他们想象出猪肉的味道,
确实有些难度。
我当然知道,
PLC
系统中早就有
FB
功能块的功能,
也早已经用了二十多年。
但我自己能用面向对象的方法来做
PLC
程序,也不过近
2-3
年的事。
然而,
我同样也知道,我们许多同行,尽管可能不懂得计算机高级语言编程,但对
FB
的各种理论技巧还是很熟练的。
我也见过一些比较复杂的
PLC
程序,看到里面非常丰富的
FB
的用法,但从中很明显地可以看出来,设计者对
FB
原理是非常懂,然而却没有面向对象的理念。
也有过比较熟识的西门子网站的驱动板块的版主,在了解到我的标准化编程理论之后就非常高傲地表示,
即便不算驱动方面的技能,仅仅拿
PLC
编程的经验和水平
PK
,对我也照样是不服的,完全可以一比高下。
我也只能摊手认怂,
不跟你比。
现在抛开面向对象,抛开标准化编程,
有一道比较有意思的题目,抛出来给大家练练手,可以算是检验下自己对
FB
的理解深度,同时对自己也算做个知识技能的储备。
临近春节假期,大家项目工作应该已经不太忙碌,可以有空闲时间为自己充充电了。
这里算是给大家提供一个学习方向。
题目的原委是这样的,在
PLC
项目中
FB
功能块的调用,通常被称为实例,而一个
FB
有可能被调用多次,
那就是产生多个实例。
现在需要对每一个实例做出
ID
的标识,即为
SID
。
比方说一个
FB
在整个
OB1
环境中被调用了
10
次,
那么我希望它们分别得到从
1
到
10
连续且不相等的
ID
号。
这个功能的实现,
应该是一个完全封装好的独立完成功能的函数块,
FB
或者
FC
。当然,因为它的实现还是比较复杂,我认为
FB
实现会比
FC
实现能方便些,
名字定义为
GetSID
。
有了这个
FB
,那么在需要区分
SID
的项目设备
FB
中,只需要调用一次函数,就可以得到了
SID
。
最好的结果是按照
OB1
执行的顺序,
第一个调用的
ID=1,
第二个为
ID=2,
最后一个
ID=MAX
。
然后如果
PLC
调试过程中实例有增加或减少,不管是中间增减还是尾部的增补,都应该能刷新更新。
有人会疑问得到这个
SID
有啥用?
我顺手就可以举例出好多个应用场景。
比如。。。。。再比如。。。。,以及。。。。
然而,我非常了解咱们许多同行的调性,如果我把应用举例描述详细了,很多人会跑题去探究我所举例具体的应用,
去用他自己的方式千方百计绕过
SID
,找方法实现。然后回过来再跟我证明获取
SID
无意义。
所以具体举例就不提了。标准化学习营的学员,可以积极参与实现这个应用,将来你们在具体的项目中会遇到这种需求的时候,我会适时与你们讲解。
(这里也透漏出个信息,以往的标准化应用分享项目中并未用到
SID
)
为了鼓励同行朋友积极参与,对成功实现功能并投稿的朋友,给出一点彩头。奖励方式三种,获奖者三种之中任选一种:
1, PLC
标准化编程例程优惠
1000
元,所有品牌任选。
2,
《万泉河著
PLC
标准化编程原理与实践》书稿电子加密版。
3,
现金
100
元。
然后是具体要求:
1,
可以使用主流
PLC
任一品牌实现,不仅仅西门子,
也更不仅仅
TIA PORTAL
。
所以这是一场面向全行业的应用比武。
我相信所有品牌的
PLC
,都可以实现。
2,
编程语言建议使用
SCL
语言。因为这样更会容易跨品牌跨平台移植。
这也是我所以可以接受全行业所有品牌的原因。同时大家未来也可以了解,任何企业,只要实现了标准化编程,是可以实现跨平台跨品牌移植的。比如
2021
年的断货危机,换品牌就易如反掌。
不会因为担忧品牌更换而所有程序从头再来。
3,
如果实在不会使用
SCL
,或者所用的
PLC
不支持
SCL
,
那么也可以用
LAD
来实现,并投递交稿。不过,将来的奖励需要减半。
4,
为了方便检查评审功能,做好的程序块请录制运行监控视频,动态显示运行结果。交稿时除源程序外,视频文件也一并提交。
5,
投稿截止时间为
2
月底,即现在起到正月期间均可参加。
只要认证功能完整有效,均给予奖励。有意投稿者,可以先加我微信:
zho6371995,
进行预报名。
报名后在截止期之前完成正式交稿都可以。
到时如果有特殊情况需要延时,可以提前打招呼获准。
6,
预报名限制人数
100
人,
正式获奖人数限
30
人,
按交稿先后顺序且功能正确者排名。
为了堵住一部分不怀好意的同行的嘴,
提防他们骂我低价购买别人的智力,
或者说我自己的问题没有能力解决,换了个方式来找别人帮忙解决。
我截图展示一下我已经实现的效果
:
我这里
SID
是得到了,
但
ID1
的位置是随机的。并没有严格地让第一台必须为
1
。
因为我这里应用谁是
ID=1
不重要,所以就没有特意去实现了。
最后提醒大家多去读我以往发表的文章,包括公众号《
PLC
标准化编程》以及西门子论坛我开设的专栏《万泉河讲故事》,找不到路的百度或者微信搜一搜
”
【万泉河】
”
,
我的所有文章标题都带了这样的标识。
好多文章,发表了很多年,逐渐都被遗忘了。
然而最近,有好多朋友提出的问题,
一看都是我在多年前发表文章中提及的技术或问题。
比如最近连续两次不同的场合,针对网友的提问推荐了文章
【万泉河】
PLC
编程求
3/8
的题目
http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1256568&b_id=80&s_id=157&num=34#anch
问题都得到了解决。
说明,他们还是文章读少了。
这篇文章看来对同行如此有用,那就在本文下面再发一次。以前已经读过的请再次温习一下。
分享
lizhendong
级别: 家园常客
发送短信
加为好友
精华主题:
0
发帖数量:
609 个
工控威望:
800 点
下载积分:
1992 分
在线时间: 846(小时)
注册时间:
2016-10-12
最后登录:
2024-11-13
查看lizhendong的
主题
/
回贴
1楼
发表于: 2022-01-23 22:01
全看
|
小
中
大
太高级了,看不懂!
分享
上一主题
下一主题
工控人家园
综合讨论
【万泉河】征集FB的编程题:获取SID
http://www.ymmfa.com
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问