通信指令本身不难,难的是对通信的理解。在学习PLC通信指令之前,我曾尝试去看通信相关的课程,然后告诉自己:算了,不必勉强自己,学不会的始终学不会。#三菱PLC入门#
数据的传输方式有并行和串行两种,其中并行是指同一时刻可以传输多个bit位的信号,有多少个信号位就需要多少根信号线;
而串是指同一时刻只能传输一个bit位的信号,只需要一根信号线,如下图所示。
PLC与其他设备的通信就是以串行的方式进行的。
所以文章所谓的通信指令是基于串行的传输方式,这次先分享串行数据传送指令RS与校验码指令CCD,下次接着分享十六进制字符转ASCII码的交换指令ASCI与ASCII码转十六进制字符的交换指令HEX。
01、数据传送指令RS
RS指令是PLC与外围设备进行数据传输的控制指令,从编程手册截图可以看到,RS指令不可用于32位,也没有脉冲执行型,它有4个操作数,源址S·和和终址D·只能是数据寄存器D,还有两个操作数n、m可以是常数K、H和寄存器D。RS指令的梯形图形式图下图所示。
源址S是所发送数据的字元件首址,D是需接收数据的字元件首址;而m是发送数据的个数,n是接收数据的个数,其中n、m的取值范围为0~且n+m≤。
这里要注意的数是,S和D不能使用相同编号的数据寄存器,但m和n可以使用同一数据寄存器。在驱动条件成立时,RS指令告诉PLC做好准备,接下来将要发送m个以S为首址的数据,并接收n个以D为首址的数据。
例上图所示的执行指令RSD0K5DK10,X0置ON,寄存器D0~D5的开始做好发送数据的准备,而D~D也开始做好接收数据的准备。即RS指令执行时,数据并没有马上开始传输,而是处于待命状态。
RS指令的应用,会涉及到几个特殊软元件,即下图所示的D、M、M、M。
所谓通信格式字,简单来说就是PLC与外围设备进行数据传输时所约定的数据格式,例如数据传输怎么开始、如何结束、波特率为多少(每秒传输bit位的个数)等。
所以,在应用RS指令进行通信前,应先确定通信格式字。
这有点像打篮球,比赛时跟队友沟通用手势进行,什么手势进攻、什么手势挡拆、什么手势用什么战术等,这都得事先约定。
M的不同状态决定了RS指令对数据的处理方式:低8位模式或16位模式。所谓低8位,是指RS指令只对源址S和终址D的低8位数据进行传送和接收,而忽略高8位的数据。
同理,所谓16位模式是指RS指令对源址S和终址D的16位数据均做发送和接收处理。例如PLC要发送数据:H01、H23、HAB、HCD,接收数据:H45、H67、H89。
(1)若M=ON,如下图所示,每个数据寄存器只有低8位用于保存所需的数据,而高8位为零,不做处理。
(2)若M=OFF,如下图所示,每个数据寄存器共有16位,均用于存放数据,与低8位模式相比,少用了一半的数据寄存器。具体用什么模式根据实际情况而定,一般是采用低8位的数据处理模式。
由M的功能和用途可以发现除RS指令外,CCD、ASCI、HEX指令对数据的处理模式也是由M的状态控制。也就是说,程序中,一旦M的状态被设定,RS、CCD、ASCI、HEX指令对数据的处理模式均相同。
特殊继电器M和M是数据发送或接受的标志继电器,它们的状态直接决定了数据是否传输。若把数据传输看成赛跑,则执行RS指令就相当于裁判喊:“预备!”,此时各选手做好蹲踞;M置ON,相当于裁判喊:“跑!”,选手们开始跑步,即数据开始传送,M也是类似的道理。
下图为RS指令应用的梯形图示例,在数据发送和接收之前,先确定好数据处理模式和写入通信格式字,如图中的H0C87为一种通信格式字。
将所需发送的数据先保存到D0~D9,然后将M置ON,开始发送数据,数据发送完毕后,继续接收数据并相继保存到PLC的D~D中,数据接收完毕后,M自动置ON,此时PLC将D~D所存的数据转存到D~D中,最后将M复位,为下一次数据接收作准备。
数据传送指令RS的理解并不简单,毕竟是通信,说到通信,我流了一地的辛酸泪。RS指令在平时用得不少,希望大家认真学习哦。
02、校验码指令CCD
所谓校验,简单来说,就是判断数据传送时所传送的数据的正确性。而校验码就是校验的结果,不同的校验方式有着不同的校验结果。校验码指令CCD就是针对求和校验和异或校验而设计的,其编程手册截图如下图所示。
所谓求和校验,是指将参与校验的数据求和,将求和结果的低8位作为校验码。例如求数据H12、H23、H34、H45、H56的求和校验码,直接将这几个数据相加等于H,取低8位为H04就是其求和校验码。
同理,异或校验,就是将参与校验的数据依次按位进行异或运算,最终结果即为异或校验码(列偶校验码)。如下图所示,求数据H12、H23、H34、H45、H56进行异或检验,先将H12与H23按位异或,结果为H31,然后将H31与H34按位异或……最终结果为H16,即异或检验码为H16。
从编程手册截图可得,CCD指令不可用于32位,有脉冲执行型和连续执行型两种,操作数有3个。其梯形图形式如下图所示,源址S为参与校验的数据存储字元件首址;终址D为求和校验码存储字元件地址,其D+1为存储列偶检验码的地址;n为参与校验数据的个数,取值范围为0~。
当驱动条件成立时,对S所存的数据分别求解其求和校验码和列偶校验码,并存到终址D和D+1中。例如执行指令CCDD0DK10,对D0~D9的数据求解其求和校验码和列偶校验码,并将求和校验码存到D中,将列偶校验码存到D中。
在上文中提到,特殊继电器M的状态也决定了CCD指令的数据处理模式。若M=ON,CCD指令为8位数据处理模式时,仅对首址为S的n个数据寄存器的低8位数据进行求和、异或,而为16位数据处理模式时,将首址为S的n个数据寄存器的高8位、低8位看成两部分,分别进行求和、异或。
例如执行指令CCDD0DK3,其中(D0)=H,(D1)=H,(D2)=H。
(1)若M=ON,对D0~D2的低8位进行校验,求和校验码为H23+H45+H56=HBE,列偶校验码为H30;
(2)M=OFF,对D0~D3的16位进行校验,求和校验码为H23+H01+H45+H23+H56+H34=H16(结果为H,取低8位),其中H01、H23、H34分别为D0D2的高8位,同理可得列偶校验码为H26。
求和校验码和异或校验码都比较常用,所以也很有必要理解其含义。
那么,这次的学习分享就到这里,共勉。
注:本文章内容都是基于三菱FXPLC2N所写选自《三菱FX系列PLC功能指令详解》第七章第70~73课时
(技成培训原创,作者:杨思慧,未经授权不得转载,违者必究)