首页 理论教育 串行通信编程指令详解

串行通信编程指令详解

时间:2023-06-29 理论教育 版权反馈
【摘要】:应断开RS指令,使D8120为0后,重新设定。7)使用了RS指令后不能再使用其他通信指令。图9-33 用RS指令发收信息的程序2.ASCII本指令是将HEX转换成ASCII的指令。图9-35 当n=K4时,位的构成使用打印等输出BCD码数据时,在执行本指令前,需要进行BIN→BCD的变换。指令执行形式有16位和8位两种表现形式,指令操作数见表9-22。

串行通信编程指令详解

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

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

978-7-111-38174-7-Chapter09-60.jpg

图9-32 RS指令示例

(1)使用RS指令时需注意以下事项

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

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

3)指令在使用时涉及的特殊辅助继电器(M)和特殊数据寄存器(D)参见表9-13~表9-15所示。

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

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

6)在RS指令补驱动后,即使更改D8120的设置,也不能被接收。应断开RS指令,使D8120为0后,重新设定。

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

(2)使用RS指令的编程格式

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

978-7-111-38174-7-Chapter09-61.jpg

图9-33 用RS指令发收信息的程序

2.ASCII(FNC82)

本指令是将HEX转换成ASCII的指令。转换模式有8位模式和16位模式;

(1)16位运算

M8161=OFF时执行,16bit变换模式。ASCII指令表现形式及操作数的说明如图9-34所示。

978-7-111-38174-7-Chapter09-62.jpg

图9-34 HEX→ASCII变换指令16位表现形式

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

假定[S·]指定起始元件为:(D100)=0ABCH(D101)=1234H(D102)=5678H;图9-34程序转换情况见表9-20。

表9-20 ASCII指令16位模式转换后[D·]元件中的内容

978-7-111-38174-7-Chapter09-63.jpg

n=K4时,位的构成如图9-35所示。

978-7-111-38174-7-Chapter09-64.jpg

图9-35 当n=K4时,位的构成

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

(2)8位运算

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

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

978-7-111-38174-7-Chapter09-65.jpg

图9-36 HEX→ASCII变换示例8位表现形式(www.xing528.com)

当指定[S·]起始元件为(D100)=0ABCH(D101)=1234H(D102)=5678H图9-35转换情况见表9-21。

表9-21 8位模式转换后[D·]元件中的内容

978-7-111-38174-7-Chapter09-66.jpg

n=K2时,位的构成如图9-37所示。

978-7-111-38174-7-Chapter09-67.jpg

图9-37 当n=K2时,位的构成

3.HEX(FNC83)ASCII转换成HEX

HEX指令是将ASCII转换为十六进制数(HEX),传送到指定单元存放。

指令执行形式有16位和8位两种表现形式,指令操作数见表9-22。16位表现形式如图9-38所示,16位执行情况如图9-40所示。8位表现形式如图9-39所示,执行情况如图9-41所示。

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

978-7-111-38174-7-Chapter09-68.jpg

978-7-111-38174-7-Chapter09-69.jpg

图9-38 16位表现形式

978-7-111-38174-7-Chapter09-70.jpg

图9-39 8位表现形式

978-7-111-38174-7-Chapter09-71.jpg

图9-40 16位指令执行情况(n=K4)

978-7-111-38174-7-Chapter09-72.jpg

图9-41 8位指令执行情况(n=K2)

4.CCD/校验码

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

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

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

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

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

978-7-111-38174-7-Chapter09-73.jpg

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

978-7-111-38174-7-Chapter09-74.jpg

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

表9-23 16位/8位模式总和校验情况

978-7-111-38174-7-Chapter09-75.jpg

(续)

978-7-111-38174-7-Chapter09-76.jpg

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

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

我要反馈