您现在所在的是:

PLC论坛

回帖:10个,阅读:922 [上一页] [1] [2] [下一页]
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2022/8/23 18:41:51
#0楼
0822 【万泉河】解读一个用循环法PK万泉河80模拟量例子的例子程序

大约两个月前,写过一篇文章:
《0628 【万泉河】优雅的PLC程序一定是用EXCEL写出来的》,其中介绍了我用EXCEL做出80个模拟量转换程序。

众多网友看到后,大呼有收获。

然而也有另外一批同行, 见到我的程序之后,直呼笑掉大牙。 嘲笑我竟然连循环语法都不会。 所以,经常在一些微信群中,遇到一些热心网友要教给我循环语法。

然后我就说,不要只看循环的那三五句语法,不要做口炮党,动下手,你们按同样的变量表,把同样功能的程序做一遍出来。然后大家比较一下。

然后来了。

下面从原理开始讲解一下。

我原始的优雅程序,在PLC程序中,就是如图这样的简单罗列调用。

循环派说,你看看, 后面的数据结果VD1000, VD1004,VD1008是有地址规律的数据,可以用指针,间接寻址或者数组的方式给序列化。 具体方法取决于所使用的PLC平台支持情况。 比如SMART 200,就可以用指针。

先把VD1000指针化,送到LD22中, 循环中调用一次数值送到LD22指向的地址, 执行完成之后指针增加4, 即指向了VD1004,下一周期即处理了第二个模拟量数据。

如此循环80次, 即只使用区区5-6行语句就实现了所有模拟量的处理。 而如果数量有改变,比如改为800个,那也只是把上面的循环数由80改为800即可。



然而,事情其实并非如此简单。 不仅输出侧变量需要序列化, 输入侧的变量也同样需要。 首先,量程上下限对每一个测点来说都不一样,那么就无法使用固定值, 也需要做成变量组,而输入的模拟量通道地址,也不会是完美连续的。 比如有时候数据来自通讯。 比如我做例子的时候有一部分数据直接来自VW。

那么需要对这些数据做IO映射处理。 即,模拟量通道部分,分配了VW2000开始的数据区,量程上下限则分别分配了VD3000,VD4000的数据区,分别传送到指针LD10, LD14, LD18中。

所以, 真实可用的程序是:



程序行数增加了一点点,忽略不计。

然而IO映射就没有那么容易了。 因为地址并不能保证规则连续, 所以必须逐行用MOVE指令来传送。 这样子:
MOVW   AI_V064:AIW100, VW2090
MOVW   AI_V065:AIW102, VW2092
MOVW   AI_V066:AIW104, VW2094
MOVW   AI_V067:AIW106, VW2096
MOVW   AI_V068:AIW108, VW2098
MOVW   AI_V069:AIW110, VW300

MOVW   AI_V070:VW2, VW302
MOVW   AI_V071:VW4, VW304
MOVW   AI_V072:VW6, VW306

总计有80行程序, 一行都少不了。 我这里只是截取了中间的部分,看到数据地址是不规则的。

而量程上下限,常数值可以用MOVD方法同样实现,也可以直接定义到数据块中,数据块增加2个表量程L和量程H,录入数据分别为:


每个表分别是80行,80*3=240。

然而这样的程序是不完整的。 使用掉的V区数据都需要做到符号表中, 给分配符号名称。 就像我原本给QOUT分配到V1000一样。

那么数据工作量为80*3=240行。

这些数据,以及MOVE指令做IO映射的程序,都需要从EXCEL整理好之后复制过来。 所以可以认为其实数据块和符号表与程序基本相同的工作量,都是程序的一部分。

所以程序的总量480行比我不用循环的做法其实反而增加了400行。

然而,我做程序时候, EXCEL表格是一次性完成的, 这里需要把工艺变量表拆分到6个表中,整理好了之后分别复制6次。这里模拟量处理的输出部分恰巧是内部数据,所以可以是完整的序列。 而其它类的设备, 输出部分也需要做IO映射,也仍然需要工作量。

是的。这个PK程序其实也仍然是我自己亲自做的。 我虽然早就知道这里面的全部的工作量,我写上一篇文章原本就是针对的某些文章和视频做的所谓循环处理技巧,我自己工作中断然不会使用,但为了把例子贡献出来, 还是忍着恶心给完整做了一下。


这个循环法实现的程序,为了爽那一下下的几句指令,同时还消耗了V2000-V4000的3000byte的数据区。 而且,程序也仍然没有做到彻底标准化。 比如,1000个byte,只能存放250个浮点数数据,即,如果真的要处理800个模拟量, 可不是仅仅把80改为800,而是所有数据区规划都需要更改。因为原本的规划区不够用了, 循环跑不成去了。

而倒过来, 如果只是8个模拟量的程序, 现在的这套浪费了3000个数据区的程序, 也是搞笑的。 浪费量惊人, 也需要优化修改。

所以其实就是, 你没针对一个新项目,都需要根据实际的模拟量数量, 重新做数据区优化规划。  

那些嘲笑我,要教我循环语法的骄傲的年轻人, 只执着于跟我演示那三五句语法,我都懒得看,他们却非常自豪的要反复演示,以为那已经是自动化工作顶尖绝技。我反复提醒他们动动手把程序做完整的时候, 理都不理。 还只在那里教育我勿要做井底之蛙, 不晓得天外有天。

指望着那些又轻浮又懒惰的年轻人,我永远也得不到跟我PK的样本。

我这里辛辛苦苦把对标PK的例子程序做出来,提供给那些懒得动手的循环派年轻人,如果我了解有偏差之处,还可以在我基础上再修改完善,哪些工作是因为我愚蠢做多了, 可以做减法删除掉, 这样对他们来说,就不会畏惧亲自动手了。

每一个年轻人,未来要有成长,在勤奋与聪明之间,必须拥有一样。 而且很多时候勤奋比聪明还更重要一点。 尤其是你怎么点化都不能领悟的自以为是的小聪明。

我这里把PK80程序同样放到80工位双联开关QQ群文件中,群1已经满员, 群2还有空位,可以申请加入870566908后获取。

附图全文:
附件:
[本地下载]


PLC标准化编程
12610
FORELF
文章数:3165
年度积分:914
历史总积分:12610
注册时间:2007/6/22
发站内信
发表于:2022/8/23 23:56:03
#1楼
尤其是你怎么点化都不能领悟的自以为是的小聪明。


小聪明老是想点化别人。
let me go任我行
37231
cvlsam 版主
文章数:12401
年度积分:1583
历史总积分:37231
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2022/8/24 5:13:07
#2楼
论坛友情提示:入群有风险,谨防诈骗!
5598
zjgxk
文章数:506
年度积分:722
历史总积分:5598
注册时间:2017/9/21
发站内信
发表于:2022/8/24 8:19:34
#3楼
那个嘲笑我,要教我烟台方法的骄傲的万老师, 只执着于跟我演示那三五个群友,我都懒得看,他却非常自豪的要反复演示,以为那已经是自动化工作顶尖绝技。我反复提醒他动动手把例程发上来看一下, 理都不理。 还只在那里教育我勿要做井底之蛙, 不晓得天外有天。
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/8/24 8:46:51
#4楼
如果你的控制有时效要求,千万不用为了省几十行代码而使用
PLC发展到如今,内部资源是够用的,但扫描周期是躲不开的
快乐 幸福 自由 比什么都重要
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/8/24 9:42:00
#5楼
回复 #1楼 FORELF
它山之石,另眼看PLC,敲门砖.....你懂的

就像"不用MT",请教过博士,博导 他们第一句就问M的定义.....
再询问万先生时避而不答
快乐 幸福 自由 比什么都重要
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/8/24 9:46:02
#6楼
以下是引用cvlsam2022/8/24 5:13:07的发言:
论坛友情提示:入群有风险,谨防诈骗!
不就是钱吗,当年投石问路的小钱都不敢要,能挣到什么大钱,想靠豪赌挣大钱---做梦
快乐 幸福 自由 比什么都重要
101
陈嘉伟
文章数:471
年度积分:101
历史总积分:101
注册时间:2019/6/13
发站内信
发表于:2022/8/24 10:50:51
#7楼
论坛友情提示:入群有风险,谨防诈骗!
2407
余生少年
文章数:803
年度积分:36
历史总积分:2407
注册时间:2019/8/19
发站内信
发表于:2022/8/24 13:48:49
#8楼
论坛友情提示:入群有风险,谨防诈骗!
4891
努力瑞
文章数:579
年度积分:224
历史总积分:4891
注册时间:2012/7/16
发站内信
发表于:2022/8/27 9:04:58
#9楼
论坛友情提示:入群有风险,谨防诈骗!

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

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

78.0005