这一节介绍PLC的数据通信,数据通信在PLC的学习中是属于比较高级的应用,对于初学者来说觉得还是有一定的难度,许多朋友一接触通信就感觉头大,各种的云山雾罩,想要学习却又无从下手。其实PLC的数据通信并没有大家想的那么难学,你只要把通信的基础原理弄明白了,不管什么样的通讯很容易就能学会,因为绝大数的通信本质都是一样的,都是一堆0和1,。下面我就以图片加文字的方式,从通信最基础的知识给大家讲起。
看图1,这是一张PLC和各种现场设备的通信示意图,通信的组合方式有许多种,可以是1对1,1对多,也可以多对多。这些通信的双方或多方虽然长的千奇百怪各不相同,但是它们都要有这么几个共同点。
1,都要有一个或多个通信端口。
2,相同的通信协议。
3, 相同的波特率,等等,这些会在以后讲解。
再看图2,PLC的通信原理就和我们人类的对话是一样的,都是你问我答,或我问你答。只不过我们用的是汉语对话,而PLC用的是PLC和设备能听懂的语言进行对话的。那么PLC是怎么说话的?说的又是什么呢?接着往下看。
看图3,就是PLC正在和外部设备进行对话,它对话的方式就是,控制通讯端口的输出电压。当想要说1时它就输出一个高电压 5V,当想要说0时它就输出一个低电压0V。这样它就能够说出无数的0和1。
这就是PLC说话的方式,并且只能说0和1,但这对于PLC通信来说已经够了,因为我们的通信设备也都只认识0和1。好了,有了共同的语言它们就可以进行交流了。
图4,就是PLC和变频器的1对1的通信示意图,PLC通过通信端口把输出电压变化8次,就能输出8个0或1,分别是10110101。因为变频器的通信端口和PLC的通信端口是连接在一起的,所以当PLC的通信端口电压变化时,变频器的通信端口就能检测到电压的变化。它就能知道PLC给它发送的是0还是1,这样PLC让电压变化8次以后,变频器就能收到和PLC发生的一样的10110101这一组数据。
那么变频器怎么知道它接收的这一组数据,代表的是什么意思呢?请看下图。本节的重点。
图5,是数据通信的格式,这是外国人在发明通讯时就规定好的,我们必须按这个格式发送数据。这个格式就是“帧”,我们进行通信时最少要发送一个“帧”。不能发送半“帧”,那样通信就会失败。
1“帧”等于12个0或1,也就是说PLC通信端口的高低电压要变化12次,才能完成1“帧”。(注:也有11次或10次为1帧的,原理一样,这里只讲12次为1帧的)。下面我们看一下这一“帧”是怎么组成的。
A,如图5帧的第一位叫起始位,顾名思义,就是告诉设备我要开始发送数据了,注意这一位必须是0,也就是通信端口要输出低电压。
B,帧的第二位至第九位叫数据位,这就我们要传送的数据,共8个位。也就是说通信端口的高低电压要变化8次。也就是说可以传送二进制0000 0000--1111 1111之间的任何一个数,用十进制表示就是0--255之间的任何一个数。我们以前讲过8个位等于1个字节,也就是说1“帧”最多只能传送1个字节数据。
C,帧的第十位叫奇偶校验位,这一位可以是0,也可以是1。这一位的作用是对前面的8个数据位中是1的位,做一个简单的奇偶数的校验。比如8个数据位要传送的是01001101这个数据,这个数据里面是1的位共有4个,那么4就是一个偶数,我们的奇偶校验位,这一位就是0,通讯端口就要输出低电压。如果8个数据位要传送的是11001101这个数据,这个数据里面是1的位共有5个,那么5就是一个奇数,我们的奇偶校验位,这一位就是1,通讯端口就要输出高电压。有了这个奇偶校验位,当我们在传送数据时,如果因为各种原因的干扰而破坏了真正的数据时,接收端的设备就可以通过查询“帧”中的奇偶校验位,来判断接收的数据正确与否。
D,帧的第十一位和十二位叫停止位,就是告诉设备数据发送完成了,注意这两位必须是1,也就是通信端口要输出两次高电压。
E, 空闲位,它不算在“帧”中,只要不发送数据了,也就是停止位以后都是空闲位,空闲位都是1,也就是通信端口一直输出高电压。直到有起始位。
这就是数据通信最小的基本单位“帧”的组成和作用。总结一下,当PLC要发送数据时,通讯端口首先输出低电压,也就是起始位为0。然后再根据要传送的数据使端口输出高低电压共8次,也就是数据位。然后再计算出奇偶校验位,输出相应的电压。接着就输出停止位,这样1“帧”的通讯就完成了。
图6,是一个例子,它演示的是PLC把十进制的181这个数传送给另一个设备。我们知道十进制的181转换成二进制就是1011 0101(怎么转换看我以前的讲解,这里不再重复),然后通过一个帧把它发送出去。这个例子如果你能看明白,说明这一节的内容你已经掌握了。
另:如果你觉得讲的凑合还行的话,可以点击下面的赞赏哈哈,当点写作的动力吧,您随意。不赞赏也无妨,有了好作品还是会和大家一起分享。我们下节再见。