首页 理论教育 串行通信特殊适配器的控制指令详解

串行通信特殊适配器的控制指令详解

时间:2023-06-27 理论教育 版权反馈
【摘要】:RS指令使用时需注意以下事项:1)数据通信格式可以通过特殊数据寄存器D8120设定。5)使用了RS指令后不能再使用其他外部通信指令。指令执行形式有16位和8位两种,指令操作数见表6-9。指令表现形式及操作数说明如图6-15所示。

串行通信特殊适配器的控制指令详解

1.串行数据传送指令RS(FNC80)

RS指令是用于安装在PLC基本单元上的RS-232C或RS-485串行通信口进行无协议通信,从而执行发送和接收串行数据的指令。指令表现形式如图6-6所示,图中的RS指令表示当执行条件M10接通时,发送D100开始的连续9点数据(D100~D108),接收数据保存在D500开始的5点数据中(D500~D504)。RS指令使用时需注意以下事项:

1)数据通信格式可以通过特殊数据寄存器D8120设定。RS指令驱动时,即使改变D8120的设定,实际上也不被接收。

2)在不进行发送的系统中应将数据发送元件数设定为“K0”,在不进行接收的系统中应将接收数据元件数设定为“K0”。

978-7-111-59091-0-Chapter06-12.jpg

图6-6 RS指令示例

3)指令在使用时必须设定处理数据是8位模式还是16位模式,设定数据模式由M8161来设定,且后续所讲的HEX、ASCI、CCD等指令在使用时也一定要进行数据模式的设定。

4)RS指令在程序中可无数次使用,但是在同一时刻只能是一个RS指令驱动。

5)使用了RS指令后不能再使用其他外部通信指令。

使用RS指令的编程格式如下:

PLC程序格式一般分为基本指令、数据传送、数据处理三部分。使用RS指令发收信息的基本程序如图6-7所示。基本指令用于定义传送的数据地址、数据数量等,数据传送部分用于写入传送内容,数据处理部分用于将接收到(对于数据接收工作)的数据通过指令写入指定的存储器区域。

978-7-111-59091-0-Chapter06-13.jpg

图6-7 用RS指令发收信息的程序示例

2.ASCⅡ转换指令ASCI(FNC82)

本指令是将HEX转换成ASCⅡ码的指令,转换时的模式有8位模式和16位模式。

(1)16位运算

M8161=OFF时执行16位变换模式。ASCI指令表现形式及相关操作数的说明如图6-8所示。

978-7-111-59091-0-Chapter06-14.jpg

图6-8 HEX→ASCII码变换指令16位表现形式

图中[S•]中的HEX数据的各位由低位到高位顺序转换成ASCII码,向[D•]的高8位、低8位分别传送。转换的字符数用n指定。[D•]目标文件首地址分为低8位、高8位,存储ASCII数据。

假定[S•]指定起始元件为(D100)=0ABCH、(D101)=1234H、(D102)=5678H,图6-8所示的程序转换情况见表6-7。

6-7 ASCI指令16位模式转换后[D•]元件中的内容

978-7-111-59091-0-Chapter06-15.jpg

采用打印等方式输出BCD码数据时,在执行本指令前,需要进行BIN→BCD的变换。

(2)8位运算

M8161=ON时执行8位变换模式。

图6-9中[S•]中的HEX数据的各位转换成ASCII码,分别向[D•]的低8位传送。转换的字符数用n指定。[D•]的高8位为0,低8位存放ASCII码。

978-7-111-59091-0-Chapter06-16.jpg

图6-9 HEX→ASCII码变换指令8位表现形式

当指定[S•]起始元件为(D100)=0ABCH、(D101)=1234H、(D102)=5678H时,图6-9转换情况见表6-8。(www.xing528.com)

6-8 ASCI指令8位模式转换后[D•]元件中的内容

978-7-111-59091-0-Chapter06-17.jpg

978-7-111-59091-0-Chapter06-18.jpg

图6-10 当n=K2时位的构成

3.十六进制数转换指令HEX(FNC83)

HEX指令可将ASCII码转换为十六进制数HEX,并传送到指定单元存放。指令执行形式有16位和8位两种,指令操作数见表6-9。16位表现形式如图6-11所示,执行情况如图6-13所示。8位表现形式如图6-12所示,执行情况如图6-14所示。

6-9 HEX指令操作数说明表

978-7-111-59091-0-Chapter06-19.jpg

978-7-111-59091-0-Chapter06-20.jpg

16位表现形式

978-7-111-59091-0-Chapter06-21.jpg

8位表现形式

978-7-111-59091-0-Chapter06-22.jpg

图6-13 16位指令执行情况(n=K4)

978-7-111-59091-0-Chapter06-23.jpg

图6-14 8位指令执行情况(n=K2)

4.校验码指令CCD

本指令用于通信时进行出错效验。将[S•]指定的元件开始的n字节组成堆栈(D的高字节、低字节拆开),将各字节数值的总和送到[D•]指定的元件,而将堆栈中垂直奇偶校验值送到[D•]+1中。指令表现形式及操作数说明如图6-15所示。

978-7-111-59091-0-Chapter06-24.jpg

图6-15 校验码CCD指令应用于16位模式示例

(1)当M8161=OFF时的16位模式

如图6-15所示,以D100指定的元件为起始的10字节数据的总和存储于D0中,垂直奇偶校验数据存储于D1中,可以用于通信数据的校验。示例中16位模式转换情况见表6-10。

(2)当M8161=ON时的8位模式

如图6-16所示,以D100指定的元件为起始的10个元件的低字节数据的总和存储于D0中,垂直奇偶校验数据存储于D1中,可以用于通信数据的校验。示例转换情况见表6-10。

978-7-111-59091-0-Chapter06-25.jpg

图6-16 校验码CCD指令应用于8位模式示例

6-10 16/8位模式总和校验情况表

978-7-111-59091-0-Chapter06-26.jpg

注:表中标*的是垂直校验有“1”位,1的个数如果是奇数,校验值为1,1的个数如果是偶数,校验值为0。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈