广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
4,零基础学西门子PLC(4):之 数据类型和内存详解(2)。
发布时间:2024-11-09

这节介绍西门子S7-200PLC的开关量输入寄存器I(徐达)的构成和编程规则,在以前的课程中我们讲过开关量输入寄存器I(徐达)的手下管理了14名部下,他们分别是(I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 I1.0 I1.1 I1.2 I1.3 I1.4 I1.5)。但这只是我们看的见的14个,为什么看的见?因为它们在PLC上都有对应的接线端子,所以我们知道它们是存在的。但事实是,这些只是开关量输入寄存器I(徐达)手下人员数量的冰山一角,为什么这么说呢?

请先看图1,声明:本节以输入寄存器I为例进行讲解,是为了讲解方便,重点讲的是原理。实际使用时多数要把I换成M或V寄存器。

上一节我们讲到S7-200PLC的内存中,开关量输入寄存器I(徐达)一共有16个字节,又因为每一个字节是8位(bit),所以16乘8就是128位(bit) ,128减去那14个等于114。所以还有114名我们看不见的,虽然看不见,但它们都是真实存在的。

再看一下图2你就明白了,黑色的是PLC,那些青色的小方块就是我们能看的到的每一个位(bit),它们连接着外部的接线端子。而那些一个个红色的小方块就是我们看不到的位(bit)。那这些红色看不见的位有什么作用呢?难道是我们的CPU(朱元璋)钱多任性让他们闲着玩游戏吗?老朱可不会这么好心,它是为我们扩展后面的模块使用的,当PLC上的这14个人不够用时,我们就要在PLC的后面加一个扩展模块,然后扩展模块上的端子再和这些看不见的位对应起来,就变成了看的见并且可以使用的开关量输入点了。这是开关量输入寄存器I在PLC里的结构形式和功能。下面说一下开关量输入寄存器I的编程命名规则。

图3,是我们对每一个位(bit)进行编程时的命名规则图,图中的I0.0就是我们真实的PLC上的第一个接线端子(可以看一下图2),那么这个I0.0每一个字符代表什么意思呢?见图3,I指的就是输入寄存器I,如果把I换成Q就是指的输出寄存器Q,紧接着I后面的第一个0指的是输入寄存器I的第0个字节(注意这个奇葩的命名,明明它是有16个字节的,第一个字节,它却非要命名成IB0,命名成IB1多好记呀,但是没办法,它说0就必须是0。。。记好了最后一个字节是IB15,可不是IB16。看看图1就知道了。)

紧接着0后面的是一个“.”,点就是点了,不用解释了,写上就行了。点后面又是一个0,它指的是字节中的第0位(和上面一样,同样的奇葩,明明是8个位,自己看吧)。挺简单吧。举个例子,如果我们在程序里写I1.5,指的就是输入寄存器I的第二个字节(IB1)的第六位(.5),这句话仔细看看。

图4,是我们按字节(BYTE)进行编程时的命名规则图,问题来了,为什么还要按字节(BYTE)进行编程呢?一个位(bit)一个位(bit)的编程不就行了吗?恩,是的,对开关量来说是没问题的,但是你别忘了还有模拟量呀,开关量只要知道0和1就行了。但要是让你保存一个85度的水的温度你怎么保存呢?你总不能用热和不热来区分吧,热的就是85度,不热的就不是85度,显然这是不行的。这时我们只要在编程时按字节(BYTE)的命名规则,编一个字节就行了。

   图4就是按字节(BYTE)的命名规则,I指的就是输入寄存器I, 后面的B 指的就是这是一个字节(BYTE)型的,0指的就是第0个字节。明白了命名规则,我们来看一下IB0能不能存下85这个数,通过前面课程的学习我们知道,1个字节(BYTE)=8个位(bit),也就是说IB0 = “0000 0000”到“1111 1111”中任何一种组合状态,而85换算成二进制数就是“1010101”,所以放在IB0中是juedui没有问题的。那么IB0最大能放一个多大的数呢?255对吧。怎么算的呢?要是忘了就看看前面的课程吧。那要是一个大于255的数,在IB0中放不下怎么办呢?我们下节接着说。


展开全文
拨打电话 微信咨询 发送询价