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”。
图6-6 RS指令示例
3)指令在使用时必须设定处理数据是8位模式还是16位模式,设定数据模式由M8161来设定,且后续所讲的HEX、ASCI、CCD等指令在使用时也一定要进行数据模式的设定。
4)RS指令在程序中可无数次使用,但是在同一时刻只能是一个RS指令驱动。
5)使用了RS指令后不能再使用其他外部通信指令。
使用RS指令的编程格式如下:
PLC程序格式一般分为基本指令、数据传送、数据处理三部分。使用RS指令发收信息的基本程序如图6-7所示。基本指令用于定义传送的数据地址、数据数量等,数据传送部分用于写入传送内容,数据处理部分用于将接收到(对于数据接收工作)的数据通过指令写入指定的存储器区域。
图6-7 用RS指令发收信息的程序示例
2.ASCⅡ转换指令ASCI(FNC82)
本指令是将HEX转换成ASCⅡ码的指令,转换时的模式有8位模式和16位模式。
(1)16位运算
M8161=OFF时执行16位变换模式。ASCI指令表现形式及相关操作数的说明如图6-8所示。
图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•]元件中的内容
采用打印等方式输出BCD码数据时,在执行本指令前,需要进行BIN→BCD的变换。
(2)8位运算
M8161=ON时执行8位变换模式。
图6-9中[S•]中的HEX数据的各位转换成ASCII码,分别向[D•]的低8位传送。转换的字符数用n指定。[D•]的高8位为0,低8位存放ASCII码。
图6-9 HEX→ASCII码变换指令8位表现形式
当指定[S•]起始元件为(D100)=0ABCH、(D101)=1234H、(D102)=5678H时,图6-9转换情况见表6-8。(www.xing528.com)
表6-8 ASCI指令8位模式转换后[D•]元件中的内容
图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指令操作数说明表
16位表现形式
8位表现形式
图6-13 16位指令执行情况(n=K4)
图6-14 8位指令执行情况(n=K2)
4.校验码指令CCD
本指令用于通信时进行出错效验。将[S•]指定的元件开始的n字节组成堆栈(D的高字节、低字节拆开),将各字节数值的总和送到[D•]指定的元件,而将堆栈中垂直奇偶校验值送到[D•]+1中。指令表现形式及操作数说明如图6-15所示。
图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。
图6-16 校验码CCD指令应用于8位模式示例
表6-10 16位/8位模式总和校验情况表
注:表中标*的是垂直校验有“1”位,1的个数如果是奇数,校验值为1,1的个数如果是偶数,校验值为0。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。