课程中心
HOME
课程中心
正文内容
plc编程T PLC的M究竟是什么,今天就来认识它
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC的M究竟是什么,今天就来认识它

最近几天有某工友表示PLC编程中不用M和T。我发现大家有些观点有误,这段时间比较忙,但忍了很久,实在忍不住了,抽半天时间写篇文章。用不用先不说,首先得知道M和T究竟是什么?T有点特殊,先不谈,把M搞清楚了T就容易搞清楚。如果学过单片机或计算机原理或嵌入式等硬件课程的就不用看了,因为这是非常基础的概念,我今天不用电子技术的语言来说,所以语言会不太严谨,主要目的是用通俗易懂的语言让搞PLC的人听懂,请工友们手下留情不要把我脸打肿了。先说说我接触编程的过程,我是学硬件的,编程最先学的是51单片机和X86汇编,然后学C/C++,最后才学的PLC,编程掌握不好,即使到今天我也无法准确阐述什么是面向对象!先自己打脸,但这不影响我用PLC做项目。其实PLC是最像单片机的,完全就是单片机的硬件升级软件简化版本,扯远了!下图是西门子S7-200手册里关于存储器结构的介绍。左边这个RAM就是今天的主角。

下图是对数据存储器的定义:

下图来看数据存储区究竟有些啥,请注意看M区:

看了上图可能明白了,M存储区在数据存储区,数据存储区又在RAM中。RMA长啥样?

下图左上那个蜈蚣状的CY62256就是西门子S7-222CPU的RAM。

就是块集成电路,我还是看不懂!那就“拆”开给你看。下图就是内部结构:

没错,它就是一堆“房间”,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对存储空间的定义,下图:

这个就更清晰了,M和D有区别吗?半毛区别都没有!其实还是有区别的,唯一的区别就是M区能让我们很方便地进行位寻址。

那么不用M可以吗?当然可以!不过,既然M和D(V)没有区别,我们为什么不用?我也不知道!那么某工友说的所谓标准化编程究竟是什么呢?我没买过他的资料,厂家的手册难道不香吗?

从他的描述中,我的理解是,哪里是不用什么M、T,估计他宣扬的只是全部用局部变量,不用全局变量,这样程序在进行移植的时候不用关心存储空间的分配,直接交给编程软件的编译系统来完成。M也可以定义为局部变量呀!为什么不可以用?因为有些使用通用MCU的PLC,位寻址能力很弱,位寻址的时间比字寻址时间还长!

那么如何做到不用M呢?

很简单,你把V(D)数据地址当成一个M来使用就可以了。但大厂PLC使用的CUP都是自己设计的,保留了很强的位寻址和操纵能力。那么放弃使用M和T有实际意义吗?只要大厂还提供直接的位寻址和操纵能力,就没有必要放弃!特别是梯形图,天生的就非常适合位寻址,用M的编程方式。这么香干吗要放弃!

3种PLC软件中来看ST编程中的定时器编程

昨晚的文章用同一段点动控制程序,让大家看了一下博图/三菱/3S,三个品牌PLC中ST编程的一些特点,很相似吧!今天继续用同一段定时器程序,来看看这个3种PLC中对定时器编程的异同!

同样的废话不多说了,直接上动态图来看:

1,博图ST编程调用定时器运行程序:

TIA Portal V14中的SCL程序中对定时器监控动态图

在博图中SCL编程时,因为我是在0B1块中直接写的程序,因此调用调用定时器TON时,其实是调用IEC定时器,相当于一个功能块,熟悉STEP7的人应该知道和SFB4一样,总之是FB块就需要一个DB块,因此我程序中的T1.TON,这个T1其实就是一个DB块,我给他命名成T1了!

同样这个程序就是PB1值为1时,就让CONDITION_OK为真,这样定时器的IN管脚就接通了,定时器就开始工作!时间运行5S后,定时器的Q点也就是STEP_DONE就输出为真了!

PT处是设定的延时时间,T#5S就代表是5秒钟。

注意一下Q=>"STEP_DONE",这里的这个=>符号不是比较的意思,而是输出的意思!

别的就没什么说的了,直接看另外2种PLC程序!

2,三菱ST编程调用定时器运行程序:

GX WORKS3中的定时器程序监控动态图

三菱这个程序是基于FX5U PLC的,这个TON指令,其实属于通用函数/FB下的定时器,和梯形图编程时使用的OUT T0是不一样的! OUT TO,OUTH T0这些不清楚的可以去看一下我的问答!

程序的内容是和上面博图软件中的解释一样的,就是延时接通而已,很简单!继续往下看。

3:3S codesys ST编程调用定时器运行程序:

codesys V2.39中的定时器程序监控动态图

codesys中的定时器和三菱的就很相似了,T1出现在了声明中,且是一个标准功能块FB,可以看一下变量声明中的图片:

T1是被声明成一个TON类型的参数

这个图片上T1不是被声明成TIME,而是声明成TON,这个TON是标准功能块中的一个函数!

从3种编程软件中可以看到,在ST编程中调用定时器时,其实这个定时器是相当于一个FB函数功能块!这个是他们的共同点!

博图/三菱/3S编程软件中ST编程定时器时的用法就如本篇文章所描述的,希望对小伙伴们有点帮助。STEP7软件中的定时器用法,我在问答中也有提及,需要的朋友可以关注我到主页中去搜索!

本文到此结束,感谢阅读!

相关问答

plc编程中,末尾t怎么写进?

OUT用于继电器、定时器、计数器的输出,可以连续使用无次数限制。OUT的程序步Y、M:1;特M:2;T:3;C:3~5。OUT指令不能用于输入继电器,在对定时器、计数器使用OUT...

plc中t和K怎么用?

PLC中,T代表了定时器。相当于继电器线路中的时间继电器,它在程序中用作延时控制。PLC定时器共有4中类型,型号T0-T199T200-T245T246-249T250-255分别为100....

谁能告诉我LS的PLC上面RX、TX、SG、FG分别是什么端,怎么接?

是PLC的RS232通信口的4根线,RX接受数据,TX发送数据,SG信号地,FG工作地。是PLC的RS232通信口的4根线,RX接受数据,TX发送数据,SG信号地,FG工作地。

我想学PLC编程,但我看不懂T形图,那些命令连在...-汇财吧专...

[回答]总平面图、室外管网立面图(或剖面图)、场地地形图(一般缺这三张图);建施、结施、水旋、通施、电施。要注意其中有几张图纸...《C语言程序设计》第...

求解下图PLC的T型图的详解-汇财吧专业问答

[回答]在PLC里定义用T型图编程就可以了参考下面(官网说明)1、READ_RTCX与SET_RTCX是新指令,即为读取/设置夏令时的时钟。2、使用S7-200的READ_RTC(读取实...

PLC中的定时器T如何应用?

如三菱的:OUTT1K50,那就是5秒的时间继电器T1。如果时间继电器的值要设成可修改的,那就用OUTT1D400,那么设定D400中的值就可以了,如5秒就是K50,10秒就...

【西门子plcs7-200中I、Q、M、SM、T、C、V、S、L分别指什么?...

[最佳回答]输入继电器I输出继电器Q通用辅助继电器M特殊继电器SM变量存储器V局部变量存储器L顺序控制继电器S定时器T计数器C模拟量输入映像寄存器AI模拟量输出...

PLC中的X、Y、M、S、T、C各代表什么意思?

没人回答那我就献丑啦X是plc中的输入,y是输出,m是辅助继电器,s是状态继电器(不是用在步进指令的时候s和m的用法相同),t是计时器,c是计数器没人回答那我就献...

plct型图根据什么来画?

6plct型图是根据特定的标准和规范来进行绘制的。具体来说,它是根据电气工程中的PLC(可编程逻辑控制器)的设计要求和功能来进行绘制的。这种图形表示方法可以清...

西门子plc的t寄存器和c寄存器可以读写吗?

西门子的编程器完全可以对t定时寄存器和c计数寄存器进行写入或读出等修整更改操作。这对更换产品时是很重要的修改参数必要操作!西门子的编程器完全可以对t定...

 黄素熙  沈忠祥少将逝世 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部