您现在所在的是:

PLC论坛

回帖:61个,阅读:4746 [上一页] [1] [2] [3] [4] [5] [6] [7] [下一页]
220
lvpretend
文章数:1449
年度积分:220
历史总积分:220
注册时间:2019/5/12
发站内信
发表于:2021/8/19 11:44:45
#0楼
最近几天论坛火热,有大虾表示PLC编程中不用M和T。我发现大家有些观点有误,这段时间比较忙,但忍了很久,实在忍不住了,抽半天时间写个帖子。

用不用先不说,首先得知道M和T究竟是什么?T有点特殊,先不谈,把M搞清楚了T就容易搞清楚。

如果学过单片机或计算机原理或嵌入式等硬件课程的就不用看了,因为这是非常基础的概念,我今天不用电子技术的语言来说,那么语言会不严谨,主要目的是用通俗易懂的语言让搞PLC的人听懂。请大虾手下留情不要把我脸打肿了。

先说说我接触编程的过程,我是学硬件的,编程最先学的是51单片机和X86汇编,然后学C/C++,最后才学的PLC,编程掌握不好,即使到今天我也无法准确阐述什么是面向对象!先自己打脸!但这不影响我用PLC做项目。

其实PLC是最像单片机的,完全就是单片机的硬件升级软件简化版本。扯远了!

下图是西门子S7-200手册里关于存储器结构的介绍。左边这个RAM就是今天的主角。
附件 IMG_1766.jpg


下图是对数据存储器的定义。
附件 IMG_1767.jpg


下图来看数据存储区究竟有些啥?请注意看M区。
附件 IMG_1768.jpg


看了上图可能明白了,M存储区在数据存储区,数据存储区又在RAM中。RMA长啥样?
下图左上那个蜈蚣状的CY62256就是西门子S7-222CPU的RAM。
附件 IMG_9559.jpg


就是块集成电路,我还是看不懂!
那就“拆”开给你看。下图就是内部结构。
附件 无标题.jpg
没错,它就是一堆“房间”,32k字节。S7-222CPU使用了2k字节的存储空间,不管你是M还是T还是C,还是V,通通都在这里面。
那么如何在这一堆房间里访问找到我需要的那个她呢?看上图中A0---A14,这就是地址线,就是访问这些房间的地址,通过这些房间就能访问M、T、C、V等等。
那么M和V有什么区别吗?半毛区别都没有!除了把M区放到MCU高速缓存中的PLC结构,像西门子S7-200系列这样的都是放到一个存储芯片中的。

文章开头说过,T跟M还有点不一样。对的,因为有些PLC的有些T是由硬件产生的,那就是集成在MCU里的硬件定时器,比如西门子S7-300就有硬件定时器。那么C呢?C也有硬件计数器和软件计数器之分,硬件计数器同样是由集成在MCU里的硬件来完成的。当然,PLC已经做好了,把这些硬件T、C的数据都映射(复制)到RAM里了,我们直接访问RAM就可以了,不用关系那些硬件T和C。当然,如果你喜欢,PLC也是有指令让你能够直接访问这些硬件计数器的,比如台达就可以直接去读硬件计数器的当前值。

说了这么多如何证明M和V都是在一个芯片里呢?
那就是PLC提供了绝对地址访问功能,比如寄存器寻址,一个数据寄存器里存放的数据是一个地址数据,对的这个地址数据就是绝对地址,就是上图A0-----A14这个地址。

再来看看国货之光汇川的PLC对存储空间的定义,下图:
附件 无标题.jpg
这个就更清晰了,M和D有区别吗?半毛区别都没有!
其实还是有区别的,唯一的区别就是M区能让我们很方便的进行位寻址。

那么不用M可以吗?
当然可以!
不过,既然M和D(V)没有区别,我们为什么不用?

我也不知道!

那么大虾说的所谓标准化编程究竟是什么呢?
我没买过他的资料,准备说我从来没买过这样的资料,厂家的手册难道不香吗?
从他帖子中的描述,我的理解是,哪里是不用什么M、T,估计他宣扬的只是全部用局部变量,不用全局变量,这样程序在进行移植的时候不用关心存储空间的分配,直接交给编程软件的编译系统来完成。

M也可以定义为局部变量呀!为什么不可以用?
因为有些使用通用MCU的PLC,位寻址能力很弱,位寻址的时间比字寻址时间还长!

那么如何做到不用M呢?

很简单,你把V(D)数据地址当成一个M来使用就可以了。

但大厂PLC使用的CUP都是自己设计的,保留了很强的位寻址和操纵能力。

那么放弃使用M和T有实际意义吗?

只要大厂还提供直接的位寻址和操纵能力,就没有必要放弃!特别是梯形图,天生的就非常适合位寻址,用M的编程方式。这么香干吗要放弃!

吃饭去了!
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2021/8/19 13:20:57
#1楼
开始理解其所说的M,T,是哪一个一个“小房子”,甚至还曾以为其突破PLC系统直指这个“小房子”.......
经过探讨--他认为抬杠,所谓的M只是厂家给编程者定义好的M,V,T,D....,后其称之为全局变量


由于他的广告宣传太夸张虚假,所以抬。
其可能想说明,他的编程方法方法,可以避免多人同项目编程时可能出现的M冲突问题,为吸睛使用了很不恰当的宣传语,所以很多人称之为骗子。
快乐 幸福 自由 比什么都重要
101
陈嘉伟
文章数:471
年度积分:101
历史总积分:101
注册时间:2019/6/13
发站内信
发表于:2021/8/19 13:48:34
#2楼
以下是引用lvpretend2021/8/19 11:44:45的发言:
最近几天论坛火热,有大虾表示PLC编程中不用M和T。我发现大家有些观点有误,这段时间比较忙,但忍了很久,实在忍不住了,抽半天时间写个帖子。

用不用先不说,首先得知道M和T究竟是什么?T有点特殊,先不谈,把M搞清楚了T就容易搞清楚。

如果学过单片机或计算机原理或嵌入式等硬件课程的就不用看了,因为这是非常基础的概念,我今天不用电子技术的语言来说,那么语言会不严谨,主要目的是用通俗易懂的语言让搞PLC的人听懂。请大虾手下留情不要把我脸打肿了。

先说说我接触编程的过程,我是学硬件的,编程最先学的是51单片机和X86汇编,然后学C/C++,最后才学的PLC,编程掌握不好,即使到今天我也无法准确阐述什么是面向对象!先自己打脸!但这不影响我用PLC做项目。

其实PLC是最像单片机的,完全就是单片机的硬件升级软件简化版本。扯远了!

下图是西门子S7-200手册里关于存储器结构的介绍。左边这个RAM就是今天的主角。
附件 IMG_1766.jpg


下图是对数据存储器的定义。
附件 IMG_1767.jpg


下图来看数据存储区究竟有些啥?请注意看M区。
附件 IMG_1768.jpg


看了上图可能明白了,M存储区在数据存储区,数据存储区又在RAM中。RMA长啥样?
下图左上那个蜈蚣状的CY62256就是西门子S7-222CPU的RAM。
附件 IMG_9559.jpg


就是块集成电路,我还是看不懂!
那就“拆”开给你看。下图就是内部结构。
附件 无标题.jpg
没错,它就是一堆“房间”,32k字节。S7-222CPU使用了2k字节的存储空间,不管你是M还是T还是C,还是V,通通都在这里面。
那么如何在这一堆房间里访问找到我需要的那个她呢?看上图中A0---A14,这就是地址线,就是访问这些房间的地址,通过这些房间就能访问M、T、C、V等等。
那么M和V有什么区别吗?半毛区别都没有!除了把M区放到MCU高速缓存中的PLC结构,像西门子S7-200系列这样的都是放到一个存储芯片中的。

文章开头说过,T跟M还有点不一样。对的,因为有些PLC的有些T是由硬件产生的,那就是集成在MCU里的硬件定时器,比如西门子S7-300就有硬件定时器。那么C呢?C也有硬件计数器和软件计数器之分,硬件计数器同样是由集成在MCU里的硬件来完成的。当然,PLC已经做好了,把这些硬件T、C的数据都映射(复制)到RAM里了,我们直接访问RAM就可以了,不用关系那些硬件T和C。当然,如果你喜欢,PLC也是有指令让你能够直接访问这些硬件计数器的,比如台达就可以直接去读硬件计数器的当前值。

说了这么多如何证明M和V都是在一个芯片里呢?
那就是PLC提供了绝对地址访问功能,比如寄存器寻址,一个数据寄存器里存放的数据是一个地址数据,对的这个地址数据就是绝对地址,就是上图A0-----A14这个地址。

再来看看国货之光汇川的PLC对存储空间的定义,下图:
附件 无标题.jpg
这个就更清晰了,M和D有区别吗?半毛区别都没有!
其实还是有区别的,唯一的区别就是M区能让我们很方便的进行位寻址。

那么不用M可以吗?
当然可以!
不过,既然M和D(V)没有区别,我们为什么不用?

我也不知道!

那么大虾说的所谓标准化编程究竟是什么呢?
我没买过他的资料,准备说我从来没买过这样的资料,厂家的手册难道不香吗?
从他帖子中的描述,我的理解是,哪里是不用什么M、T,估计他宣扬的只是全部用局部变量,不用全局变量,这样程序在进行移植的时候不用关心存储空间的分配,直接交给编程软件的编译系统来完成。

M也可以定义为局部变量呀!为什么不可以用?
因为有些使用通用MCU的PLC,位寻址能力很弱,位寻址的时间比字寻址时间还长!

那么如何做到不用M呢?

很简单,你把V(D)数据地址当成一个M来使用就可以了。

但大厂PLC使用的CUP都是自己设计的,保留了很强的位寻址和操纵能力。

那么放弃使用M和T有实际意义吗?

只要大厂还提供直接的位寻址和操纵能力,就没有必要放弃!特别是梯形图,天生的就非常适合位寻址,用M的编程方式。这么香干吗要放弃!

吃饭去了!


写的真好,我一个不怎么懂集成电路的人都看的懂,津津有味

另外不用管老骗子,做工控这行,能拿得出手的永远是设备的正常运行,程序易解读,而不是什么标准化编程
8867
qdppo
文章数:1195
年度积分:905
历史总积分:8867
注册时间:2016/2/13
发站内信
发表于:2021/8/21 19:46:15
#3楼
。。。。我现在用博途写项目,多用优化快数据块符号编程,地址我都不管。


       再创建一个非优化数据块,用来和第三方HMI 通讯使用。


       M 位(布尔量)也不怎么用了,都在数据块里指定。。。正如楼主说
       的,反正没区别。


       T 和 C 需要就用。。系统里给你准备好了,不用白不用 !
[此贴子已经被作者于2021/8/21 19:53:28编辑过]
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2021/8/21 21:37:22
#4楼
话说得再多, 无非证明自己离不了。

而根本想象不到别人离开了M和T的羁绊之后编程有多爽。
PLC标准化编程
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2021/8/22 0:10:06
#5楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
8580
chengzheng
文章数:1655
年度积分:402
历史总积分:8580
注册时间:2006/7/24
发站内信
发表于:2021/8/22 5:06:53
#6楼
不要吵,

万师傅推广自己的课程也无可厚非。
有需要的可以联系他。
大家交流讨论也很正常。
都是在这行当打拼,挣工分。

求同存异吧
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2021/8/22 6:37:46
#7楼
回复 #6楼 chengzheng
这种观点的争论与课程无关。

也是早在有标准化方法之前,就已经存在的争论与共识。
PLC标准化编程
20901
bnnyygy
文章数:5988
年度积分:1567
历史总积分:20901
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2021/8/22 9:09:10
#8楼
不用白不用表情

最近用博图也是,管他FB FC 一概FB,反正资源多,用不完。

DB块也是,一个非优化DB块和第三方HMI链接,其它非必要都是优化DB块,管它怎么分配,反正用不完。表情
23509
mengx9806
文章数:10974
年度积分:1248
历史总积分:23509
注册时间:2011/5/16
发站内信
2018论坛热心网友
2018春节活动(三)
工控人谈电商
发表于:2021/8/22 9:18:51
#9楼
以下是引用bnnyygy2021/8/22 9:09:10的发言:
不用白不用表情

最近用博图也是,管他FB FC 一概FB,反正资源多,用不完。

DB块也是,一个非优化DB块和第三方HMI链接,其它非必要都是优化DB块,管它怎么分配,反正用不完。表情
不用白不用
这句话是实在话
喜欢一句广告语:世界再大,也大不过我35码半的脚步。但是我的世界里,如何才能追到那
逝去的青春年华?

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

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

109.2007