技术论坛

 回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

返回主题列表
作者 主题
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
楼主    2018-05-26 18:40:36
主题:【万泉河】我现在告诉你们不用M和T的程序好在哪里 精华帖  精编帖 

听我讲故事, 就得先跟着我学会思考。


我很早就在微信朋友圈里发过类似的话:如果一个观点,你从来都没有思考过。 听到以后完全不能接受, 那么先不要急着发表反对意见。 因为很有可能是自己维度不够。 还不足以理解别人的观点。 所以也没有反对的资格。 如果贸然跳出来反对,最终就很容易丢人闹大笑话。


我自己一直是这么做的。


有的人会因此站出来反驳说, 哇,你独(min)裁(zhu)吗?连让人发表反对观点的权利都剥夺了?至少要容许俺们有反对的权利吧!


呸,井底之蛙有什么资格持反对观点,幼儿园的小孩子智商还未发育完整呢, 有什么资格享有平等的政治权利?


就像电影里那位高调宣称:“我反对这门亲事!”的家伙, 他的反对意见,价值为0。


文章《【万泉河】好的PLC程序和坏的PLC程序的比较标准 》发布之后, 引来了剧烈的争议。其中很多有反对意见。 我每个都看了,那些反对者都符合我说的标准。 都是从来没有听闻的情况下发表的观点。 只有一位 @pingchangxin 态度比较好, 承认自己想不明白,需要再学习。 所以对大部分的反对意见, 我都是无意反驳的。 又不是为我做事情, 你认为自己的做法最好, 那继续坚持好了。


上个周, 我们敬爱的廖老师, 微信上给我留言, 要我放下身段, 跟反对者们好好辩论探讨不使用M和T的程序好在哪里, 什么原理,什么方法实现。我回复了上面的观点,表示, 辩论是没得辩论的。 要辩论,也得跟理解力相当的高手。 可高手们并没有发表反对意见, 反而是站在我同一个阵营的。 比如这两天, 我还跟@ZANE 和@伊墨 请教探讨了PORTAL编程中的技术问题。 


但是, 我可以举一个例子,证明没有M和T的程序是好程序。


比如,你在做一个S7-300的项目,程序做完了,被要求硬件配置换成软冗余。 也可以说是你曾经有调试完成的S7-300的项目, 现在来了同样点数配置的新项目, 唯一不同是要求CPU做软冗余。 那么怎么做?


如果你做的程序是没有M和T的, 那只需要放进去直接运行即可。


而如果你用的常规的M和T, 那么, 你需要重新写全部程序,全部重新调试!


因为:软冗余不能对定时器T进行同步。对M区的同步也是有限指定的。


看软冗余技术手册:



现在,还会有人跟我辩解好程序没有标准么?


一个是能够直接复用的程序, 一个是只能扔掉重新写的程序, 好和坏还比不出来吗?



**************************END*****************************************************



最后, 给大家出一道题目。


比如一台单机设备,比方叫作成型机,脑补一下图片这样子:


点数不算多。 一个S7-300CPU带一排机架的IO卡件足够实现。


你把程序做完,调试完成, 效果很好。


客户说再来一台。


你复制,克龙, 又完成一台。 很爽。


客户说再来5台,so easy, 重复下载5次即可。


客户很满意, 说要扩大产能,再来100台。 一个大厂房里面全部放满。 发大财了!


但为了管理和维护方便,要求是集中控制, 一个S7-400 CPU 带所有单机。 原来的CPU ,拆掉, 换ET200M。还正好, 一个机架一个分站。


你原来的程序能用吗?说好的结构化模块化编程, 易于管理复制呢?


喂,同志, 你怎么了, 同志,你醒醒!


***********************END1********************

举例而已, 竟然有人郑重其事的评估100台单机风险高,不可能集中控制。 


那就再举个例子。 


比如你原本给钢厂提供单机设备, 开卷, 复卷, 剪切, 焊接, 冷轧, 热轧, 喷漆。。。


后来一天说,你们给提供整条生产线吧。要完整的一条全自动化生产线。 


各单机聚起来。 


你还是只能做用单机通讯?




微信公众号:PLC标准化编程,ZHO6371995
Zaxife
至圣

经验值:12614
发帖数:2450
精华帖:31
11楼    2018-05-27 08:05:51
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里
M点作为位操作爽到爆,不用可惜,非得用字的逻辑运算实现也是你的自由,谁叫你有钱杀鸡都是用牛刀有钱真的可以为所欲为啊…咱们这些穷人都是数着内存用的内牛满面…像你这么土豪的我只想问一句“土豪,哪家公司是你开的?还招人不?我也想用牛刀杀鸡爽上一爽!”

至于T也是一样的,都数着内存用真的能省一点就省一点了,而且T也很方便不是?

再就是同样的100台设备?同样的都是一起更新硬件搞中控?我是没遇到过这样好事,我遇到的都是很少完全相同直接可以复用的设备…

还有如果客户要升级为中控这种情况…原先项目一般都保留MBS接口,用户接上去修改站地址就可以用了没什么麻烦…很多时候客户宁愿换整套设备或者整套控制,也不会说修改原先的系统框架的…我宁愿加个廉价的CPU也不加ET啊。

最后,一个400作为控制中心,带大量的扩展模块控制大量相同的设备…这种做法我只能说,是哪个客户这么穷想出这种方案?这样做风险太高做方案时都会直接否决的了…就好比分拣系统你主控挂了数十条流水线就不能工作了?人家停机一分钟亏多少钱你赔?如果换成都是独立CPU,完全没这么大的风险!
ABBCCC
至圣

经验值:24401
发帖数:4717
精华帖:6
14楼    2018-05-27 10:00:27
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里
两位大佬千万不能在我等后生晚辈前失了风度。尺有所短寸有所长。合不合适自己习惯就好,不要完全排斥别人的东西,比自己高明之处借鉴一下无妨,不如己处可内心默默提升一下自豪感有利身心健康,以不外露为宜,三人行必有我师。
谨慎低调
芳季
至圣

经验值:72112
发帖数:15504
精华帖:101
15楼    2018-05-27 11:22:11
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

我能理解到不用MT的好处,我自己做的库程序得明显也不用MT。我只知道(比如)50个好处,而万老你知道100个好处。但不等于垃圾plc就没有向往了。只是我用不到你那步而已。我猜大家都是从垃圾plc过来的吧?只是你进化成会飞,而我进化成只能泥巴上爬。你下不了泥巴,我飞不起来。大家都有着450万年的进化史。没有谁比谁强。

楼前
奇侠

经验值:5493
发帖数:544
精华帖:0
18楼    2018-05-27 14:48:10
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

 极不赞成楼上的说法,教育方式和你所能学到的学习方法。反对低水平的重复。烂PLC也有存在的价值,更希望了解高级运用。

老兵veteran
至圣

经验值:59334
发帖数:9984
精华帖:505
20楼    2018-05-27 18:06:42
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

 1、我感觉楼主心虚了,理由如下:a、先**一把:看我帖子,得同意我的观点,否则你就是井底的蛙,是幼稚园小朋友,没资格跟我说,我也懒得跟你论。b、先后搬出ZANE、伊墨、奥特曼、乐侠一众高手来为自己站台。    这有点像那句名言:我爸是李刚,或者,你夫是严书记?


2、你如果要举S7-300软冗余的例子,那你应该把你的程序好坏标准修改成“不用M及计时器”,不只是T不能用,IEC的SFB也不能用。你得去读系统时钟。因为系统时钟是可以同步的,切换又是有时间差的,IEC的SFB也保证不了你的计时器能正常工作。而系统时钟就可以避免了。


3、背景数据块及共享数据块也是有缺点的:每次调试时的下载,都可能会初始化相应的数据块。除非你做的程序可以永远不必再重新下载DB或者修改FB/C的接口。而M区就不存在这个问题。


4、有的大侠说看别人的程序最怕看到M,我分析不是怕看到M,是怕看到没有注释的M。但没有注释的DB一样让人恐怖。


5、尺有所短,寸的所长。正如芳季举的例子,高铁飞机固然好,但是,我就去小区的超市打酱油,你总不能也去高铁飞机吧?步行 不更好?再不济可以小黄小红么


6、新手上路,自然从MT开始,随着不断的学习,自然也会向DBDIARP#的过渡。但这并不是区别好坏的硬标准。一个条理清楚的编程者,即便用的全是MT,也会让人看着就心生欣喜;一个头脑昏昏的编程者,即便一个MT不用,全部“高深”的间址,也一样是一个让人烦的坏程序。


7、我喜欢平淡简洁,不喜欢炫技。但我也可以自信的说:放马过来,我的编程水准不比你差!

天生不宜做胜利者,自来没有胜利的欲望,只是不甘失败,十分十分不甘心失败。木心
pingchangxin
侠圣

经验值:3881
发帖数:546
精华帖:1
21楼    2018-05-27 18:26:27
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

   “如果一个观点,你从来都没有思考过。 听到以后完全不能接受, 那么先不要急着发表反对意见。 因为很有可能是自己维度不够。 还不足以理解别人的观点。 所以也没有反对的资格。 如果贸然跳出来反对,最终就很容易丢人闹大笑话。”非常赞同,不调查就没有发言权,虽然看的 万前辈的帖子还不太多,但是从看到您那个“技术洁癖”说法,感觉到一种可以叫做高手的素质,有种仰望的感觉,深深的敬佩!

    喜欢这段话,支持一下,赶快看帖子!

精益求精
yming
至圣

经验值:138360
发帖数:23136
精华帖:880
23楼    2018-05-27 18:51:46
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

你们为啥不看看标签再发言呢?



S7-200 、LOGO! 西门子本来就定义的是低端应用。所谓的“烂”是被硬件框住了。CU就是这样的速度和能力。M区不用能行么?它的结构就是那样的。M区的低地址是重合映射、固定的,才能做掉电保持。V区从下向上用户使用,系统从高向下使用。与300/400完全不同。

像LOGO!只有V区,连M区都没有。所有搭建的都是功能块(FC);除非你拖出来放到V区变量中。


这样的PLC 要做子程序库,使用时,就需要定义地址空间,才能运行。不是么?

而LOGO!也有它的UDF(用户自定义功能块),因为它是FC,所以没有定义地址空间的必要。


何况,楼主说的是300/400这类PLC(包括 1200/1500)的编程方法。这样做甚至可避免项目移植出现的种种问题。

非要用S7-200的结构来套这种编程模式,如何讨论呢?

学而时习之,不亦说乎?温故而知新,不亦乐乎?
Setrarin
侠士

经验值:1749
发帖数:139
精华帖:4
27楼    2018-05-27 20:47:16
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

M点变量没办法写成结构性的变量,变量之间的关系是离散的,不方便进行程序重构。而经典的定时器没法写进标准块。以上也是我不喜欢用它们的原因。M点用于全局的标志位,如时钟,常0常1位,还是挺好的。

但行好事,莫问前程
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
29楼    2018-05-27 21:13:20
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

3、背景数据块及共享数据块也是有缺点的:每次调试时的下载,都可能会初始化相应的数据块。除非你做的程序可以永远不必再重新下载DB或者修改FB/C的接口。而M区就不存在这个问题。

---------只响应你这一条, 其他就不对牛弹琴了,你可以尽情tree new bee。 

这是西门子没做好, 明白吗?

所以西门子也需要不断创新,不断发展。 否则就会沦落为一个烂品牌。 


从S7到PORTAL, 西门子在这些方面巨大的投入, 效果没看出来?

本文以及前文虽然都没涉及,但思维方式深受影响。 



微信公众号:PLC标准化编程,ZHO6371995
德理自动化
游士

经验值:215
发帖数:2
精华帖:1
30楼    2018-05-27 21:22:33
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

楼主,你说的问题是我这两年一直在思考的问题,我一直在想相同或者类似的程序如何标准化,自从看到群里惠兰博的模板后我觉得就是这样类似的想法。我是文科出身的工控从业者,所以我的思考方式和工科生不太一样,

第一次见到FC和FB时候我就被FB吸引了,我觉得FB真的是太好了,(我一般很少用到FC)虽然在STEP7中编程调试的时候很费劲,但是也阻止不了我对它的喜欢,尤其是后来用到TIA博途后发现德国人也是很人性化的吗。调试监控真的简单多了。

说了这么多可能有点跑题,但是我还是觉得你的思路对我一直思考的问题是个莫大的指引。。。

我觉得好用的就是最好的程序,好用的标准,

  1. 好调试,查找快捷修改方便;

  2. 标准化移植,迅速复制和粘贴;

  3. 不用M和 T  (相同的项目只是硬件和图纸不同了,点数相同,第二个调试起来一点也没省事!!!)

  4. 结合标准化的上位机控件可以一劳永逸。(我自己做梦想到的)


工控文科生的一点自己调试绕的湾子总结。



9

shine
至圣

经验值:19820
发帖数:8803
精华帖:39
36楼    2018-05-28 08:59:20
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

这里有本手册大家可以看一下,西门子的                                                                     

”S7-1200 和 S7-1500 的编程指南和编程风格指南“

https://support.industry.siemens.com/cs/attachments/90885040/81318674_Programming_guideline_DOC_v15_en.pdf?download=true

z349568117
侠士

经验值:1241
发帖数:42
精华帖:0
43楼    2018-05-28 10:40:04
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

如果根本不用M和T,那岂不是所有的程序都要做到FB中?

这样是不是会影响FB的清晰度呢?

举例:FB的某个输入引脚是急停,现场有很多急停按钮。

      不用M的情况:每一个急停按钮都对应着FB的一个引脚:急停1、急停2、急停3、、、、、

      用到M的情况:在FB外将所有急停并联得到一个总的急停M,这样的话FB就只需一个急停引脚即可。

      用到M的话,FB内只做主要的功能,是否更清晰呢?


Zane
至圣

经验值:85161
发帖数:21047
精华帖:399
44楼    2018-05-28 10:40:39
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

给你出道题,做不出来就不要掺和了。


电机控制模块,启动,停止,运行反馈,故障4个输入信号,输出,运行指示,故障指示3个输出信号;

程序中任意n个电机控制模块,假设PLC的IO点可以满足上述控制要求;

要求1:实现任意n个电机的控制,且每个电机模块的IO定义是通过用户程序自由定义并且有冲突检测功能


说白了,一个PLC下载了一个含N个电机控制的程序,但IO点没确定,接完线后,不得使用编程软件修改程序,只能通过修改参数的方式,让PLC能按实际接线完成控制任务且系统能自动避免设定错误或冲突。


要求2:S7-1200/1500程序通用,SMART也要求能够实现


这题是绝对不用M和T的哈!


@威师爷 没穿过的鞋想不想穿呀,还没穿就说不合适了?

Zane 注册自动化系统工程师 Always save before download
xxctjd
侠圣

经验值:4373
发帖数:577
精华帖:3
55楼    2018-05-28 12:19:36
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

对于万老师的说法,我举双手赞成,我说下我的观点。


小系统可能用几个M和T搞定了,这些不在讨论的范围内,讨论这个话题的基本是中大型系统,像目前电商的分拣机、输送线、立库等,少则几千个IO点,多刚几万个IO点,哪么这些系统必须要模块化设计,不敢说玩不转,用了大量M和T出错机率高、扫描周期长,现在的交叉带分拣机一般都是2.5米/秒左右的速度,你一个PLC软件扫描周期50ms,PLC与WMS经WCS交互用了150ms,对不起,我敢说这样的系统,分错机率高的离谱。

我认为万老师说的很好,我是这样作的。

系统大概配置S7-1516 3PN/DP主机、ET200SP分布式站点、IM155-6接口模块、PN口读码器。

1、配置了mw0系统时钟,基本上需要记时的地方,均用PLC系统时钟来作的,记时稍有误差,但对系统影响不大;

2、用SCL写的代码,应用结构体数组为每个设备建立信息库;

3、单机控制结构化函数;

4、按系统流向,根据设备类型调用相应函数;

5、SCADA同样按系统流向,调用相应结构体显示、控制设备。

主机1台、ET200SP分布式站点59个、IPN口读码器31个,目前扫描周期5~18ms,与WCS交互周期60ms左右。


Zane
至圣

经验值:85161
发帖数:21047
精华帖:399
60楼    2018-05-28 13:08:47
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

不要这么悲观,impossible is nothing!


希望万侠的这两个帖子能在工控程序猿的心中洒下那么一个火种,大家都可以去尝试着做一下,成功与失败其实都是一种经验,已经有人走到这一步了,看到了不一样的风景,难道你连看一下的勇气都没有?



Zane 注册自动化系统工程师 Always save before download
Zane
至圣

经验值:85161
发帖数:21047
精华帖:399
61楼    2018-05-28 13:26:54
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

是的,这里提出了一种编程的方法,对错好坏应该依据你的实践经验来评价和讨论,你都没做过,你的鞋子理论用来说明啥呢?


你说你想搭我的顺风车,却一边骂我的车太烂,你想干啥?

Zane 注册自动化系统工程师 Always save before download
xxctjd
侠圣

经验值:4373
发帖数:577
精华帖:3
65楼    2018-05-28 13:56:11
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

随着Tia的不断升级,软件功能逐渐强大,在以往不方便使用的编程方法、调试工具慢慢也都有了,最少目前有结构体、结构体数组、断点调试,给编程提供了极大的方便,如果我们还停留纠结是否用M、T的阶段,也太low了,搞技术本身就是要学习,学习什么?别人先进的方法和技术,提高自己的工作效率,你感觉M、T很好用,我们不反对,我们自动化控制追求是什么?稳、准、快,在工业2025(工业4.0)的道路上,谁先实现稳、准、快谁就有一席之地。

'Razor
至圣

经验值:24441
发帖数:3205
精华帖:41
66楼    2018-05-28 14:00:05
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

通过修改UI参数实现位地址变址这个操作,如果没记错的话,全球技术资源有例程下载,具体是触摸屏还是WinCC记不清了。

这个操作在几年前碰到一个专家型客户提出过,不过是使用其它品牌的东西实现的,当时做没做地址冲突检测这块儿,实在是记不起来了,确切答案需要搜索一下电脑文件才能回复了。比较的话,估计又得要“填表”了吧。


“嚼蜡”的难以接受“吃屎”的傲慢和专横;

“吃屎”的难以忍受“嚼蜡”的狭隘和固执;

所以一直在争论不休,“吃饭”的捡起需要的贝壳后就悄无声息的溜走了。

KISS principle




少即是多
yzs
侠圣

经验值:3615
发帖数:436
精华帖:7
68楼    2018-05-28 15:27:46
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

很有道理,但过激了点。。。。

编程到了一定的程度是需要编写自己的标准程序块,日常工程调用自己的标准程序块即可。

标准程序块编写的FC,FB当然不会用到M和T,能用FC建议不用FB。

调用标准块的时候可以用到DB,也可以用到M,其实区别并不大,简单顺手的时候用M是很方便的,DB在规划点表时表现更方便。

个人认为一个好的程序并不会注重你是否用了M,而是体现在以下几个方面:

  1. 程序的架构与可读性

    好的程序架构清晰,整个工程或工序有好的顺序进行延展,程序注释清晰明了。同时采用规范化的变量及注释,尽可能提高程序的可读性。

    2. 程序的安全性及适应性

        好的程序需要对工艺及控制的熟悉,只有适合该工艺的控制才是一个好程序。另外最关键的是安全性,如何让PLC程序消除BUG,消除不稳定因素其实是很多编程人员忽略的地方,举个简单的例子,正常设定参数的时候程序是正常运行的,但参数设置为0或者错误时,这个时候程序就可能出错了,简单的出错可能影响不大,但是有时候导致继电器不断启闭就可能对设备或者人的安全产生严重的后果。

    3. 程序的标准化

       同类的行业中,相同或类似的控制比比皆是,那么就需要对相关的程序进行标准化设计,标准化后的程序主要可以体现在安全性,适应性及重复利用上。

举个最简单的例子:水泵控制----有些项目的水泵是3台,有些是4台,有些带变频,有些不带

如果每个项目都需要根据实际情况重新编程那么效率是低下的,而且不能保证每次的程序都没用问题安全的。那么这个时候就可以建立一些标准程序,1-7台的水泵控制都可以调用这个标准程序,工作也就轻松多了。

    4. 变量点表的编写

       程序的编写最初是变量点表的编写,在做一些复杂的程序或者工程量大的程序I/O表的建立更显重要,因为I/O表是你工程的基础也是你程序的提纲。

陈陈521
侠客

经验值:606
发帖数:34
精华帖:0
70楼    2018-05-28 16:57:40
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

万版:

     你好!经常拜读你的故事和帖子。作为一刚入行的新人菜鸟,经验也不是很丰富。很想跟各位大佬们学习学习可没有这样的好机会。厂子领导只关心设备什么时候能转起来?根本不管什么好程序,坏程序。作为新人我很想学习什么样的程序为好程序,有没有这样的例子?说明让我们新人学习一下。见得多了就明白。我想这也是论坛中新人的一些想法吧.期待你下一次分享故事中有好坏程序你个人的见解。能作为我们日后再写程序中的一些指导。谢谢了

宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
71楼    2018-05-28 20:24:46
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

论坛里90%的人都没有大项目经历,跟他们谈FB的优势根本没意义。也没人知道FB深层次的意义。

没有一定的IO规模,他们根本感受不到M,T会导致多大的工作量。真赶上了,手抽筋才知道自己是井底青蛙。

以下能看懂的可以交流,在Step7+WinCC中创建AS-OS项目:

1. FB(As block)->Icon->Faceplate以组件的方式存在库中。

2. 通过OS项目编辑器自动上传WinCC变量(FB的S7_m_c属性),自动组态报警消息(FB的S7_Server和S7_a_type属性),自动组态归档变量(S7_Archive属性)。这些属性适用于LAD/FBD/STL编程也适用与CFC等。

3. 操作记录通过faceplate面板的按钮IO等触发,操作记录文本使用通配符表达。


下班了,没带电脑。只找到了第一版电机程序,是2014年写的,后面有3,4年的改进更新,是抄袭的BST模板。

Motor.rar




lzm
奇侠

经验值:9330
发帖数:1316
精华帖:8
73楼    2018-05-29 08:13:04
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

眼前一幅画面:站在不同楼层的大侠们在论“剑”,各自抒发感怀。

这论坛本身就要有个“论”才有意义。身处高楼层的也是从底层一步步站到现在的高度,况且这楼还在不断起高,至今没有顶层,怕永远也不会封顶。

Querer es poder! 修福粒米藏日月 持慧毫芒有乾坤
谷歌涂鸦
侠圣

经验值:4771
发帖数:78
精华帖:9
74楼    2018-05-29 08:23:15
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

这段时间,在西家论坛接连看到大咖们的精彩辩论,非常欣赏这种砥砺切磋的学术精神。真理是愈辩愈明的,当下,我们社会的许多领域,面对问题,缺少的恰恰就是这种诉诸辩论的精神,许多事情,不讨论,不许讨论。

真心感谢西家论坛。我想起了一篇关于辩论的文章,引用一段:


解放初,山东大学的华岗校长,为山大请来了束星北这位教授。束星北世界闻名,是李政道的老师。不知道华岗校长自己的学术水平如何,但束星北成了山大永远的骄傲。校长华岗又以个人名义,邀请路过济南的北京大学物理系主任,中国第一号热力学专家王竹溪到山大讲课。王竹溪是杨振宁的老师。你说,这个校长了不得吧?更了不得的事还在后面。

王竹溪在大礼堂开讲,那可是物理盛会啊,座无虚席,华岗校长携全校领导陪同。王竹溪讲的是热力学,他一边讲一边在黑板上写出一些公式或重要概念。讲到50分钟的时候,身穿蓝色长袍高大魁梧的束星北先生走上讲台,也不做任何自我介绍,在人们疑惑的目光里,将双手撑在讲台上说:“我有必要打断一下,因为我认为王先生的报告错误百出,他没有搞懂热力学的本质。”束星北拿起粉笔,一边在王竹溪写满黑板的公式和概念上打着叉,一边解释错在哪里。
主持人拿眼使劲地瞅华岗校长,会场一阵骚动。束先生好像根本没有看见别人的情绪和反应,也不在乎别人是什么样的感觉,一味在那里“正本清源”。而华岗校长坐在那里没有任何反应,会场平静下来。束先生一口气讲了大约40分钟,也可以说,是对王先生“清算”了40分钟。这期间,王竹溪一直站在一边,主持人几次请他坐下来,他都未从。
束星北讲完了,王竹溪接着讲。
这是中国物理学界最著名的故事之一,一个伟大的故事有着多方面的证明力。有了校长的广阔,就有束星北老师的执着与王竹溪老师的雅量,而后学术昌明、学生受益。如果没有华岗校长,做学生的别说亲眼见到,一辈子也想象不出如此顶级的精彩。

宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
75楼    2018-05-29 08:43:20
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

@Zane 


我从12年开始做PCS7,一直在传统行业,已经腻歪了没有什么新东西。回头看看这几年在做运动控制,视觉,智能照明,仓储的,我现在做的东西简直Low到爆。羡慕这些工程师,貌似他们工资也比我们高个层次。绝对没有做了大项目就有层级高的意思,我说的是对FB的了解层次。


再大的项目也是小功能单元组成的,而且都是重复的回路。大项目做完也没什么技术含量,不过为了工程组态效率必须要使用批量工具,批量工具的精华也就是前期精确设计,一旦生成复制几百次后,后面发现有问题去改,需要手动。M与T这些在过程控制什么的项目特性下,资源妙妙钟就枯竭。


用FC还是FB?

西门子开发的批量工具也是针对使用FB,你要想用它的东西没得选择。


yming
至圣

经验值:138360
发帖数:23136
精华帖:880
76楼    2018-05-29 08:44:16
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

说的挺形象的哈。

是这么回事儿。楼主上文开篇其实就讲明了,从前也是使用M&T的。这是实践过程中,不断积累的感悟,拿出来与大家分享了。

楼层确实是与视界相关。但每人对不同楼层探索的深度、程度有所不同。每层都有可探索、发掘的宝藏。

只有在论坛上,才会有人介绍,上层的风光是怎样的。准备上来,选个啥样的梯子最好。

我也就站在中下层,但至少耳听八方;万一哪天我需要上去呢?


学而时习之,不亦说乎?温故而知新,不亦乐乎?
kenshinguo
侠圣

经验值:2636
发帖数:719
精华帖:3
79楼    2018-05-29 09:46:50
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

这种技术讨论贴本不至于火药味这么浓的。楼主的编程思路是很好,很值得学习的,但是衡量好坏程序的标准太绝对了。当然,经过这么长时间的讨论,这么多队友不断地诠释、限定范围,这个标准也确实就快成为标准了。

lzm
奇侠

经验值:9330
发帖数:1316
精华帖:8
82楼    2018-05-29 11:15:42
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

1)曾经的第一个双速小车的控制,后来因为有重复使用的情况,及重复项目的需要,使自己有了想简化编程,直接使用的想法,便学着用了FB;后来成了标准小程序,供同事们享用。
2)第一次学用300PLC 也是在一个前辈做到近乎完成的项目阶段,接手后续工作,当然作为新手不敢动这动那的。于是出现了T的使用数量限制的问题。后来不得不另想他法,解决办法同样是FB,加上时基输入和累加,这回T限制问题解决了。当然后来的项目真的少有T的使用了,自己做T的不必再考虑S5time,正、倒计时随便取用,数量嘛,够用,WINCC读取也简单了,但时基还是M标志。还是不符标准啊


Querer es poder! 修福粒米藏日月 持慧毫芒有乾坤
Zane
至圣

经验值:85161
发帖数:21047
精华帖:399
86楼    2018-05-29 13:37:02
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

建立在正确性基础上的效率是很高的,这就是标准化和模块化的意义。至于使用FC,我主要还是处于品牌间的编程兼容性及小型化系统的标准化模块化应用的考虑。

Zane 注册自动化系统工程师 Always save before download
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
88楼    2018-05-29 17:32:20
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

1, 需要一个标准。 

请达成共识。 

2,如果达成共识需要有标准, 那么要么你制定一个标准拿出来,要么接受别人制定的标准。 

不要只为了维护自己的面子, 别人的标准一概不认同不接受。

3,你说的那个老外所定的标准, 显然也是一个客观标准。 只要标准是客观的, 就可以接受。 他能做得到,你凭啥做不到?


对于标准来说, 最讨厌的就是双重标准。 严他宽己。


微信公众号:PLC标准化编程,ZHO6371995
Zane
至圣

经验值:85161
发帖数:21047
精华帖:399
90楼    2018-05-29 18:59:10
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

其实万侠说的只是一小部分的情况,我有一个项目天然气减压站的远程数据采集,100多个站分布在城市各偏远区域,用户说我安装好一个,你调试一个,初期我们现场调试了2个站后,在中控就做好了标准化的通讯程序,用户装好后,电话一个直接远程开通即可。分站的程序也就是一套,插卡一拷贝,发布一个APP给用户,用户自己用PAD改一下PLC的IP地址和网关就可以通讯了,连同数据在线的检测都有了,现场的人没人会使用编程软件重新下载程序的。我们去现场用户还单独给600元一天的补助的,最后这笔钱也没花。


中控1500PLC管远程近100个200SMART的通讯,可调通讯间隔,自动断线再连,用的FB的数组,程序一点点大,没有M,没有T。

Zane 注册自动化系统工程师 Always save before download
宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
91楼    2018-05-29 20:31:25
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

你们都在讲标准,有个人吧这些标准写下来了吗?

我写了一个库,我内推给公司做公司的标准。

我写了操作员用的操作说明书。

我写了工程人员的组态说明书。

我写了使用库的基础例程。

我写了开发手册。

我做了Demo案例。

我跟领导自荐用实际项目验证功能块,分文不取,还给额外增加自己工作量,技术支持。

我第一个库是针对300/400写的,领导还要我不要用上班的时间做这些东西。不过我现在垄断公司的S7-200 SMART,S7300/400,S71200/1500标准块。







KITT
奇侠

经验值:9385
发帖数:1223
精华帖:13
93楼    2018-05-29 21:42:16
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

1\并不是说使用M的就是垃圾程序,结构化要从设计图纸开始来实现的,IO区间怎么排列这是之前就应该在Excel中规划好的,,有规则可循这是最基本的也是结构清晰的重要一步,楼主说的那些200 smart类的是垃圾我不知道你怎么认为它是垃圾的难道就是因为他没有DB?还是他的编程软件局限性大?这明显的失言,(虽然200不方便但是并不是说他就没有优势,他不能实现常规应用),M不是不能用只是尽量少用,那用M做什么呢?有些系统标志用,我也看到很多国外设备还有在这个行业做的不错的公司(包括西门子)结构化程序中也是有用M的,难道人家的程序很垃圾?没必要说的这么理直气壮的,当然也不能诋毁别人认为自己的程序就是完整的优秀的

always_True/False/Initial_Flag

1s_Pulse/10s_Pulse/30s_Pluse/1M_Pulse/1H_Pulse..../Keep_1s_Pluse

Monday_Flag/...

False_DelFlag/TEMP_Flag

SYS_Ack/Fault_Ack/Alarm_Ack

Test/Sim

2\没有MT的程序好不好要看编程人的技术水平与对设备的了解,MT并不是一个判断标准,虽然我也不喜欢看到用很多M,当然对于我们改造的项目看到程序中用M唯一的好处就是看完可以快速标定符号.如果用M建议一定要使用英文符号即使自己英语不行也要有一套基本的变量接口命名方法,看到中文的符号我感觉很多人可能会理解错含义.从题目联想到一个现实中的人之前看到人家使用FB他就感觉FB好背景数据块好用一大堆FB但是其程序看着生气,其实我感觉有时候FB的背景数据块是给懒人准备的接口用一个填一个多方便只不过这样只是浪费工作内存(FB接口使用所占),我感觉程序要分区块即使多几个FC FB DB也不要将所有的弄到一个里面当然这是方便了但是以后可能的改动可能并不方便,最好在Excel中将标准FC FB编号和自由编号的区间都统计一遍做好规划,这样可能一个程序库中将所有的标准块都涵盖了,

3\主观上我判断一个程序好坏并不是说楼主说的MT而是你的程序占用了多少容量(当我看到5%的使用率我就在想这个选型的依据是什么为什么程序这么简单),当然并不是绝对的有些人用UDT FC指针将程序做的精简但是程序功能结构都是很清晰的.从程序来讲好的就是逻辑严密,接口自由,结构合理.

4\说个题外话我感觉我们有些客户对程序不懂只要能满足基本的功能即可其他的对他来说都没用,程序是否可以交付给客户这是另外的重要的是是否有一些组织针对行业来验证程序可靠性.

SIMATIC!
工控一良
游侠

经验值:560
发帖数:40
精华帖:1
94楼    2018-05-29 23:40:07
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

自动化的都要用AutoCAD或ePlan画电气原理图,如图中两个电机分别以“CON_M01_01"和"CON_M01_02"命名。

 

跟着@Zane 版的题目再追加一个问题:如何能够把已编就的电机控制块,在调用时自动把程序块的命名赋值为电气设计时的电机名 “CON_M01_01"和"CON_M01_02。或者说已编好了电机控制程序库,当电机电气设计完成后,对应PLC的控制程序能够自动生成。

宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
96楼    2018-05-30 09:22:20
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

光生成程序有什么意思呢?还要自动生成图标才好,还要自动生成硬件组态。

因为需要人为制定一些规则。不过这些规则不是在Eplan中去制定的。毕竟Eplan不是西门子的东西,没有这么开放。

而Eplan与TIA的交汇传递硬件组态到TIA现在已经可以实现了呢。自动生成程序不过没有现成的工具,需要自己去开发,TIA已经留了这些API的接口。用C#等可以连接控制。


一下插件了解下:

TIA/Openness和SiVArc

Rossi84
侠圣

经验值:4138
发帖数:394
精华帖:1
99楼    2018-05-30 13:28:32
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

    看了这么多大侠们的讲解,感觉对于MT,DB,FB在应用中的特点理解的更加详尽了,对于标准还不敢评论,没到那个水平,也没接触过大项目,就是看完帖子后,觉得在以后的项目设计时,要考虑到以后的兼容、延续性,通用性强的地方避免使用MT,对于我这样的入门选手,看完帖子的认识,这点比较深刻。同时在大侠们各抒己见的同时,也阐述了自己观点的案例,也帮助了解大侠们想表述的意思。感叹要是有宁侠一样的高手在单位,即是好事又是坏事,好事是省脑,专业性的工作他都干了,坏事是工作都被别人干了,要是出去了,就会几个FB连管脚,内部逻辑自己没动脑想过。

无法改变之前,努力改变之后
Letham
至圣

经验值:14191
发帖数:2021
精华帖:43
113楼    2018-05-31 09:29:28
精华帖  精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

我坚持 我的观点 我在程序设计和规划时,只用DB+UDT的形式!M和T 小型项目你可以这么做!大型项目,看到那么多 散落在各处的M,我都密集恐惧症了。

在调试过程中,遇到点BUG,需要打补丁的情况下使用下M和T吧!


当然,项目结束或者 ,生产间歇期 我会重新优化我的DB+UDT,做进一步标准化工作


引用下我在另一个帖子里的发言

个人觉得用M来做中大程序,程序结构会显得不够紧凑,层次感结构感不强,所有的变量都是平等地散步在符号表里(当然PORTAL可以建立多个变量表)感觉就是 1000个工人全部直接像总经理汇报,

总经理--- 工人1

               工人2

               工人1000

没有 

总经理-经理1-主管1-电机(工人100) 这种层次感

                      主管x-电机(工人100)

            经理2-主管1-电机(工人100) 

                      主管x-电机(工人100)



人生就像一场旅行!
莎利文
侠圣

经验值:2331
发帖数:142
精华帖:7
134楼    2018-06-01 11:08:18
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

看了大家的评论,说实话。我糊涂了。其实,争论的焦点与好的程序定义,有很大关系吗?甚至都脸红了,伤和气了。无非想强制要求大家认同你的观点吗。记得明朝万历年间发大水,关于赈灾的话题,党争不已。各抒高见,赈灾是万民所需,不赈乃国家实情,最后呢,3个月过去了朝廷官员依然没有结果(有人考虑灾民吗),但是怨气却形成了,大家伤了和气,则今后事事针对,件件反对。为了反对而反对,绝对不是为了事情本身。更不是为了追求真理。。。废话说多了。。

   但是,来了也的说说对吗?  建议不敢提,楼上各位只能敬仰,我只想问个问题。难道仅凭不用MT则程序就是好的程序吗?或者进一步问一下,假如一个好的程序的定义标准有20条(假设的),那么楼主你的比重占多大? 其实在下很敬仰楼主文章《【万泉河】好的PLC程序和坏的PLC程序的比较标准 》,里边的建议有真知灼见,但不能盖全。可是这一篇为什么不能百尺竿头更进一步,却画地为牢,固步自封?

建议大家心平气和的给出建议,使得好程序标准被完善,被准确定义,被大家认同并推广开来,为祖国的2025献力献策。

 


人情到时文章老,书读深处意气平。
leafnew
侠士

经验值:1374
发帖数:69
精华帖:0
135楼    2018-06-01 12:40:32
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

 如果一个观点,你从来都没有思考过。 听到以后完全不能接受, 那么先不要急着发表反对意见。 因为很有可能是自己维度不够。 还不足以理解别人的观点。 所以也没有反对的资格。 如果贸然跳出来反对,最终就很容易丢人闹大笑话。


这句话不错,后边的回应就是吵吵了,其实简单一点,举个栗子就好了,结果除了举例子,又写了那么多


行吧,发现大师也是有点脾气,我也就放心了!

永远相信美好的事情即将发生!
电磁小天王
侠客

经验值:628
发帖数:66
精华帖:0
136楼    2018-06-01 14:00:54
精编帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

楼主明显说的编程思维  ,,我刚接触博图   =在现场也听人家说  基本不用直接地址编程,我当时想,逻辑上不是一样?后来遇到别的程序一下再就反应过来了,现在有多少单机设备,大方向就是西门子的集成自动化,你们老追着M ,T 在小设备上如何好用,感觉真是NAIVE     。

宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
159楼    2018-06-05 19:32:10
精华帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

主题:【分享】分享下我是怎么样在FB里计时的

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1246826&b_id=4&s_id=23&num=58#anch

主题:【分享】1500 CPU电机块LAD(附件是程序)

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1431625&b_id=66&s_id=84&num=36#anch

SCL编写模拟量监视功能块,用于S7-300

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1299737&b_id=4&s_id=23&num=29#anch


占个地,重新来讨论下计时的方法。

希望大家都缓一缓情绪。

楼主出发点是好的,你们却一味在攻击。可以晒下你们自己的计时程序,看看能不能经得起大家和楼主的推敲。



手机用户20180607192293
游民

经验值:67
发帖数:1
精华帖:1
161楼    2018-06-07 15:26:07
精华帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

万老师 我对于你的观点表示支持。越是大公司 越是复杂的项目你的这种方法越有优势。但是干PLC这一行的人员水平参差不齐 可以说好的凤毛菱角 差的比比皆是。很多人都局限在我能干出来就很了不起的视野中而无法自拔。你的这种观点 对于公司来说 有很多好处:

1  控制项目的进度 缩短项目的开发周期 减少调试周期

2  减少调试人员数量 降低人力成本而且也非常有利于售后调试人员在现场的临时修整。

3  有利于顶层控制,使产品可以持续优化。防止张三来了搞张三一套 李四来了搞李四一套的游击战式运作从而使产品到达某个阶段就停滞不前甚至倒退。

说白了 不懂得人 你跟他说的再多  他不仅不理解 反而倒打一耙 觉得你霸道。所以 你说的很对  交流需要对等,你让一个大学教授跟小学生讨论研究生的题目,能聊的愉快么?!

一天到晚游泳的猪
侠圣

经验值:2643
发帖数:768
精华帖:10
167楼    2018-06-12 13:00:52
精华帖  主题:回复:【万泉河】我现在告诉你们不用M和T的程序好在哪里

如果跳出西门子的这个圈,看看其它厂家的东西,也许会更好的理解楼主的做法是有道理的


最近我在做一个施耐德plc的项目,4月底才接到任务,之前对施耐德软硬件没怎么接触过,只听说过昆腾plc和concept软件,但没玩过。

实际此项目用的是unitypro软件和m580plc,花了一些时间自学硬件知识和软件的使用,发现unitypro的st语言的语法与西门子的scl非常接近,应该说都基本符合iec61131标准吧。

我和同事就把以前西门子里面的scl写一些模块移植过来,修改工作很少,原因得益于当初写scl代码的时候没有用M、db和t、c这种不太“通用”的东东,scl里面涉及到T的都是用定时计数实现——模块执行都放在ob35里面执行。因此移植工作比较简单和顺利。

再看看dcs,有些厂家的dcs根本就没有中间变量的概念,而是以“模块名.管脚名"的形式来访问,unitypro也是支持这样的写法的,编程的时候比较方便也比较易读。

有生之年,狭路相逢,终不能幸免
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。