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的编程方式。这么香干吗要放弃!
PLC脉冲信号是干嘛的?与频率,占空比,正、负逻辑有什么关系?
在数字电子系统中,所有传送的信号均为开关量,即只有两种状态的电信号,这种电信号,我们称作做脉冲信号,这是所有数字电路中的基本电信号
一个标准的脉冲信号如下图所示。
我们把脉冲信号由低电压跳变至高电压的脉冲信号边沿称做上升沿,把由高电压跳边至低电压的边沿称下降沿,有的资料上又叫前沿,后沿。把电压低的称做低电平 ,电压高的称做高电平 。
假设脉冲信号的周期为T ,脉冲宽变为t1 则有下面一些基本概念。
频率f: 指一秒种内脉冲信号周期变化的次数,即f = 1 / T周期越小,频率越大。
有了频率这个概念,我们现在就来讨论一下从PLC输入端输入开关信号的最高频率问题。由上一章扫描及PLC的滞后知识可知,PLC的扫描周期主要由用户程序的长短所决定,假定其扫描周期为20ms,并考虑到输入滤波器的响应延迟为10ms,则PLC执行扫描周期为30ms。如果输入信号的变化小于30ms的话由扫描原理可知,PLC完全可能检测不到,也就是说输入信号的脉宽一定要大于30ms,这样,输入信号的频率就受到了限制。
我们假定输入信号是占空比为50%的脉冲信号,则其周期为T=2t1=60ms那么输入信号的频率不能大于1/60ms=16.6HZ。这对于按钮,普通开关等一般工业控制场合是完全可以的,但对于要求I/O响应速度高的实时控制场合就不能适应了。
对于要求高速响应的场合,不同厂家的PLC都在软件和硬件上采取了很多措施,提高I/O的响应速度。FX2N设计了高速计数模块,提供了X0~X7共8个高速输入端,,其RC滤波器的时间仅为0.5us在软件方面采用I/O即时信息刷新方式,中断传送方式和能用指令修改的数字式滤波器等。因此可以处理的输入信号频率有了很大提高,可以达到20KHZ。
占空比: 指脉冲宽度t1与周期T的比例百分比。为t1/T %。占空比的含义是脉冲所占据周期的空间,占空比越大,表示脉冲宽度越接近周期T,也表示脉冲信号的平均值越大。
正逻辑与负逻辑: 脉冲信号只有两种状态:高电平和低电平,与数字电路的二种逻辑状态“1”和“0”相对应,但到底是高电平表示“1”还是低电平表示为“1”都可因人而设。如果设定高电平为“1”低电平为“0”则叫正逻辑,如果反过来,设定低电平为“1”高电平为“0”的时候,则为负逻辑。一般情况下,没有加以特殊说明,我们均采用正逻辑关系。
在实际电路中,高电平是几伏,低电平是几伏。没有严格的规定,例如在TTL电路中,高电平为3V左右,低电平为0.5V左右,而在CMOS电路中,高电平为3~18V或者7~15V,低电平为0V。(技成原创,未经授权不得转载,违者必究!)
往期优秀文章回顾:
S7-200SMART PLC重点精讲:模拟量模块接线图、扩展模块、CPU结构
相关问答
PLC中T什么意思?
这是PLC通讯中数据发送接收的标识,T/R转换也是数据发送接收的转换。T即TXD,是发送数据Transmit(tx)Data的简写形式,R即RXD,是接受数据Receive(rx)Data的简写...
PLC指令中的D、T、C、M指的是什么意思?(急用)?
T是时间继电器,C是计数继电器,M是辅助继电器T是时间继电器,C是计数继电器,M是辅助继电器
plc中t和K怎么用?
PLC中,T代表了定时器。相当于继电器线路中的时间继电器,它在程序中用作延时控制。PLC定时器共有4中类型,型号T0-T199T200-T245T246-249T250-255分别为100....
plc中c什么意思?
名字中的c是控制器的意思,在编程中代表计数器按照一般PLC的规则理解,:X:输入接点,有的PLC用"I"标志;Y:输出接点,也可指输出线圈,有的PLC用"Q&quo...
编程PLC时,X.Y.M.T.C.S各代表的是什么?
按照一般PLC的规则理解,以上标志均出现在位操作指令中:X:输入接点,有的PLC用"I"标志;Y:输出接点,也可指输出线圈,有的PLC用"Q"标志;M:内部继电...
plc中T1是什么意思?
在PLC中,T1表示延时器1。在PLC中,延时器1(T1)是一种特殊的定时器,它的作用是在输入信号到达后延迟一段时间,再触发相应的输出信号。T1通常用于控制电机、灯...
三菱PLC中!TCRSTSETSTLMS等指令是什么意思!详细点的...
[最佳回答]邮箱地址放上来吧,我发一个FX1S,FX1N,FX2N,FX2NC系列编程手册.pdf给你.T时间继电器,C计数器,RST位软元件复位指令,SET位软元件置位指令,STL步进梯...
plc编程中,末尾t怎么写进?
OUT用于继电器、定时器、计数器的输出,可以连续使用无次数限制。OUT的程序步Y、M:1;特M:2;T:3;C:3~5。OUT指令不能用于输入继电器,在对定时器、计数器使用OUT...
T区别是什么?PLC输出R?
R:是继电器,不能发脉冲T:是晶体管,可以发脉冲只要不控制伺服,步进,等发脉冲的,都可以使用带R的PLCR:是继电器,不能发脉冲T:是晶体管,可以发脉冲只要不控制伺...
PLCT是啥意思?
PLCT是“PowerLineCommunicationTechnology”的缩写,也称为电力线通信技术。这是一种利用家庭或办公楼宇内部的电力线路传输数据和信号的技术。使用这种技...