技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 三菱PLC > 三菱FX PLC学习之通信指令(下)

三菱FX PLC学习之通信指令(下)

吴翠萍 发布于2020-11-23 11:26 15 2 标签:三菱PLC,三菱FX PLC,PLC编程入门

【点击领取】三菱案例 | 西门子案例 | 电工手册 | 工具箱 软件

【点击获取】三菱PLC例程117个|西门子PLC例程777个

【点击下载】2020最新电工仿真软件


继上篇文章所分享的RS数据传送指令和CCD校验码指令,这次我们接着分享同样受数据处理模式标志继电器M8161控制的ASCI指令和HEX指令。



ASCI指令和HEX指令是一对互逆的指令,基于十六进制字符与ASCII码之间的转换。ASCII码,我在之前的文章就有简单的介绍过,在这里再简单提一下。


ASCII码也就是美国信息交换标准代码,它是一组7位(或8位)二进制代码,分别表示0~9的十个代码、大小写字母的52个代码、32个表示各种符号的代码以及34个控制码。而什么字符对应什么ASCII码,我们可以通过查它的编码表得知。例如字符“3”对应的ASCII码为H33,字符“A”对应的ASCII码为H41,这里的3、A是一个字符,而不仅仅是一个数。这就像运动员背后贴的号码布,上面的号码代表的不是数值的大小,而是表示运动员的编号。


另外,十六进制字符(HEX)我就不再解释,相信大家对它也是相当熟悉了。在知道了什么是HEX和ASCII后,我们开始指令的学习分享吧。

01HEX→ASCII转换指令ASCI


图15-1


ASCI指令的作用是将十六进制字符转换为ASCII码。但为什么要将HEX字符转换为ASCII码呢?这其实是通信的内容,ASCII通信模式是MODBUS通信协议的通信模式之一,简单来说,是指在数据传输过程中所传送的字符用ASCII码表示。至于什么是MODBUS通信协议,咳咳,这通信吧,我上篇文章已经说过了,这是我永远滴痛。


所以,ASCI指令和HEX指令都是用于ASCII通信模式的。即PLC通过ASCI指令将需发送的十六进制数据转换为ASCII码,通过HEX指令将接收到的ASCII码转换为十六进制字符。



ASCI指令的编程手册截图如上图15-1所示,和RS指令与CCD指令一样不可用于32位,有连续执行型和脉冲执行型两种。


图15-2


其梯形图形式如上图15-2所示,和CCD指令非常相似,也有3个操作数,源址S为HEX字符或存储字元件首址;终址D为ASCII码存储字元件首地址;n为需转换的HEX字符的个数,取值范围为1~256。当驱动条件成立时,将源址S的n个十六进制字符转换为ASCII码并存放到首址为D的寄存器中。


结合上篇文章,特殊继电器M8161的状态可以将ASCI指令分为16位数据处理模式和8位数据处理模式。


(1)16位数据处理模式

特殊继电器M8161=OFF,ASCI指令为16位数据处理模式。当驱动条件成立,将以S为首址的寄存器的n个十六进制字符转换为ASCII码,并分别存放到以D为首址的寄存器的高8位和低8位。


1个16位(二进制位)的寄存器含有4个十六进制字符,如下图15-3所示,每1个十六进制字符转为ASCII码后需占有2个十六进制位(8个二进制位),如D0中低4位组成一个十六进制位H1,将字符“1”转换为ASCII后变成H31,即1→31。


图15-3


也就是说,执行指令ASCI D0 D100 K1,已知(D0)=H4321,指令执行完后(D100)=H0031,如下图15-4所示。


图15-4


在16位数据处理模式下,终址D对应的寄存器,其高8位也被利用,换句话说,一个D可以存放2个ASCII码。由每个S有4位HEX数据,全部转换为ASCII码就需要2个D。 如下图15-5所示,执行指令ASCI D0 D100 K4,已知(D0)=H4321,指令执行完后(D101)=H3132,(D100)=H3334,其中D100中的“34”为D0中“4”的ASCII码,依次类推。



图15-5


这里要注意的是,HEX数据在转换的过程中,最后被转换的会存放在终址D的最低位,例如上例中的十六进制字符“4”对应的ASCII码存放到D100的低8位,这如同一个压栈的过程。而在实际应用中,常采用的是8位数据处理模式。


(2)8位数据处理模式

特殊继电器M8161=ON,ASCI指令为8位数据处理模式。当驱动条件成立,将以S为首址的寄存器的n个十六进制字符转换为ASCII码,并分别存放到以D为首址的寄存器的低8位,高8位忽略不用。


此时一个S的4位HEX数据,全部转换为ASCII码就需要4个D寄存器,如下图15-6所示。执行指令ASCI D0 D100 K4,M8161=ON,已知(D0)=H4321,指令执行完后(D100)=H0034,其中D100中的“34”为D0中“4”的ASCII码,高8位作置零处理,依次类推。


图15-6


在低8位数据处理模式下,因为1位HEX数据转换为ASCII码就要占用1个寄存器,所以要转换n个字符,就要用到n个占D寄存器,其最高地址为D n-1。如下图15-7所示,执行指令ASCI D0 D100 K10,n=10,终址D的最高地址为D109(100 10-1),且存放的是最先转换的字符“A”,其ASCII码为H41。


图15-7


十六进制字符0~9,A~F对应的ASCII码分别为H30~H39,H41~H46,这个是可以通过查表得知,不过也比较好记。知道了ASCI指令是怎么回事后,再来看HEX指令就显得很简单。



02ASCII→HEX转换指令HEX

HEX指令的作用是将外围设备向PLC回传的ASCII码转换为HEX数据。其编程手册截图和梯形图形式如下图15-8所示。和ASCI指令一样,HEX指令也有3个操作数,源址S为ASCII码存储字元件首址;终址D为HEX数据存储字元件首地址;n依然是需转换的HEX字符的个数,取值范围为1~256。


图15-8


当驱动条件成立时,将源址S的ASCII码转换为n个十六进制字符并存放到首址为D的寄存器中,分为16位和8位数据处理模式。其对数据的处理过程恰好为ASCI指令的逆过程,如下图15-9所示,执行指令HEX D0 D100 K1,(D0)=H0041,ASCII码“H41”对应字符“A”,所以指令执行完毕后,(D100)=H000A。


图15-9


可以发现,1个S最多能存2个ASCII码,全部转换为HEX数据只占用D的低8位。换句话说,也就是1个D可以存放2个S的共4个ASCII码。基于ASCI指令讲解的比较详细,HEX指令的16位数据处理模式就不再展开讲解,它是将S的高8位和低8位均作为ASCII码进行转换。


HEX指令的8位数据处理模式,是指把S为首址的寄存器的低8位数据对于的ASCII码转换为HEX数据并存放到D位首址的寄存器中,此时每转换4个S占用1个D。如下图15-10所示,执行指令HEX D0 D10 K8,M8161=ON,8位数据处理模式,D0~D7的高8位数据均忽略不作处理,仅对其低8位数据进行转换。如D0的低8位为H38,该ASCII码对应的字符为“8”,所以终址D11的高4位就为H8,最先转换的存放在最高位。


图15-10


这里要注意的是,S中的数据一定要符合ASCII码的标准才能被转换,如果不是ASCII码,则运算错误。


ASCI指令和HEX指令还是比较常用的,大家很有必要去理解它们,这次的学习分享虽然没有结合实际的梯形图案例,但还算详细,希望大家在阅读后能有所收获哟。那么,这次的学习分享就到这里。


注:本文章内容都是基于三菱FX PLC 2N所写

选自《三菱FX系列PLC功能指令详解》第七章第70~73课时

(技成培训原创,作者:杨思慧,未经授权不得转载,违者必究)


技成培训

微信公众号:jcpeixun


技成电工课堂

微信公众号:jcdgkt


技成PLC课堂

微信公众号:jc-plc

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

三菱PLC 三菱FX PLC PLC编程入门

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签