首页 理论教育 欧姆龙HostLink协议附录A

欧姆龙HostLink协议附录A

时间:2023-06-16 理论教育 版权反馈
【摘要】:高档及新机型可接受的命令较多。在一次发送或应答中所含字符的集合称为帧。不然将根据命令执行情况返回不同代码。出厂时,PLC默认节点号为00。PLC收到回车应答符后,再发后续数据,即中间帧。PLC状态读写类欧姆龙PLC为3种状态,即编程、监控及运行。这3种状态可由PLC读写,其命令码分别为MS和SC。而其第1个字的08和09位分别代表PLC的几种工作状态。

欧姆龙HostLink协议附录A

用于串口通信。命令分为3个等级。等级1能读写PLC数据,若PLC处于监控及编程状态,还可向PLC写数据。等级2可向PLC传送程序,并可读写I/O表。等级3可进行I/O登记及I/O分布情况的读入。

一般用等级1、2。但使用编程软件要用到等级3。这3个命令等级可在上位链接单元作相应设定予以确定,如不用上位链接单元通信,一般为3级。而且,随机型不同,可接受的通信命令也不尽相同。高档及新机型可接受的命令较多。

1.通信协议要点

欧姆龙HostLink协议适用与所有它的PLC,在串口平台上,与计算机通信。通信由计算机向PLC发送命令,PLC应答,PLC为被动通信。也是PLC与计算机之间用得最多的通信。在一次发送或应答中所含字符的集合称为帧。规定一个帧最多可含131个字符(节)。

(1)帧格式

图A-1所示为计算机命令帧格式。其中每个方格为一个字符。

图A-1 计算机命令帧格式

这里,@为命令开始字符。节点号用BCD码,两位数,可在00~31之间选取,但必须与通信对方设定的节点号一致;命令码使用两个英文大写字母,代码解释见后;数据与命令码有关,数据的地址部分用BCD码,数据的数值部分用十六进制码,用到英文字符要大写;∗及CR(回车符)为结束字符,是命令帧的结束标志。FCS为异或校验,对FCS之前命令帧每个字符ASCII码,按位依次异或,所得的结果值再换成ASCII码。此值不足两位数,高位要补0。如用到英文字符也要大写。如下面一帧信息:@10(单元号)RH(命令)00310001(数据)58(FCS)∗CR(结束符)。这里的FCS为58,这个58是这么计算出来的:

再转换为ASCII码为:0011 0101(5)00111000(8)。

图A-2所示为PLC响应帧格式。它与命令帧基本相同。所差的只是在数据部分。这里增加了两个字符的返回码。如果命令正确执行返回码为00。不然将根据命令执行情况返回不同代码。而返回数据则不一定必要。写命令,就没有返回数据;读命令,才有返回数据。

图A-2 PLC响应帧格式

提示:PLC的节点号可使用CX-Programmer编程软件设定。出厂时,PLC默认节点号为00。

(2)多帧通信

如果通信交换的字符需超过131字节,可以进行折分,用多次通信,使每次都少于131个字符。也可使用用多帧通信。如读、写程序,无法折分,只能用多帧通信。多帧通信分:多帧响应及多帧命令,如图A-3、A-4所示。

图A-3 多帧响应

图A-4 多帧命令

如读很多数据或读PLC程序,响应就是多帧。从图A-3可知,它的首响应帧没有结束“∗”字符。计算机收到这个响应帧后,发应答符(回车符)。PLC收到回车应答符后,再发后续数据,即中间帧。这样帧仅仅是数据、FCS及回车符。计算机收到这个响应帧后,再发应答符(回车符)。PLC收到回车应答符后,再发后续数据,即中间帧。但如果已是最后数据,那么按结束帧发送。结束响应帧与中间响应帧不同的是有“∗”字符。计算机收到这样的帧就可做别的处理。响应大小由PLC自动生成的,前面的帧为128个字符,结束帧为余下的不足128个字符。

如写很多数据,命令就是多帧。如图A-4所示,就是多帧命令、应答及其结束响应的过程。与图A-3不同的是,它的命令帧大小由人工任意确定。只要不超过128个字符即可。

(3)返回码

表A-1所示为主要的返回码。用好它,可便于通信程序调试。

A-1 返回码及其含义

(4)命令码

命令分为3个等级。等级1能读写PLC数据;若PLC处于监控及编程状态,还可向PLC写数据;等级2可向PLC传送程序,并可读写I/O表;等级3可进行I/O登记及I/O分布情况的读入。

一般用等级1、2。但使用编程软件要用到等级3。这3个命令等级可在上位链接单元作相应设定予以确定,如不用上位链接单元通信,一般为3级;而且,随机型不同,可接受的通信命令也不尽相同。高档及新机型可接受的命令较多。

2.通信命令分类

通信命令有如下几类:

(1)测试类

命令码为TS,用于对通信可行性进行测试。其格式为

@××TS#####……FCS∗CR

这里××——PLC地址,可以是00~31,由对PLC进行设定确定#####——任意数字或

字符;

FCS——纵向校验码,两个字符;

∗——字符;

CR——回车。

计算机送这个命令给PLC后,若PLC返回的是同样的码,则说明通信成功,可行。否则为通信不成功,不能正常进行通信。这类命令常用于对通信硬件进行测试。

(2)数据读写类

命令码为RX或WX,这里X为数据区符号。如DM区为D,保持继电器为H,辅助继电器为J,计数器、定时器(现值)为C,其设定值为#(或$,%)等。PLC有多少内部器件就有多少相应的符号。

如为读命令,命令码后的数据先是指定读数据区的首地址,占4个字符。其后为要读的数据有多少字,也占4个字符。如读1个字符,为0001。

如为写命令,命令码后的数据是写数据区的首地址,占4个字符。其后为依次向该数据区要写的内容。每个字占4个字符,要写多少字(通道),就有多少“4个字符”。

接着为校验码。即FCS,是两个字。最后为∗及回车符。

例1,@00RH00000002∗CR

例2,@00WH0000FFFFFFFF∗CR

这里例1为要从PLC的HR00开始的HR区读两个字的内容。例2为要向PLC的HR区HR00开始的通道,依次写入FFFF,FFFF两个字的内容。

PLC收到这两条命令后,如正确地执行了,其响应将分别为

@00RH00XXXXXXXXFCS∗CR(对例1)

这里的XXXXXXXX为HR00及HR01通道的数据。FCS为校验码,占两个字符。

@00WH00FCS∗CR(对例2)

这里WH后的00表示WH命令已正确执行。

应指出的是,数据写命令只能在监控及编程状态才可能执行。

(3)PLC状态读写类

欧姆龙PLC为3种状态,即编程、监控及运行。这3种状态可由PLC读写,其命令码分别为MS和SC。

如果为状态读,其响应数据有两个字,各有其含义。而其第1个字的08和09位分别代表PLC的几种工作状态。如位09位08。

00编程

10运行

11监控

若写状态,其数据仅1个字节,其1、0位的取值与要写的状态对应如下:

位1位0(www.xing528.com)

00编程

10监控

11运行

(4)强迫置位与复位类

其命令码分别为KS、KR。

KS(强迫置位)的格式为

@××〖单元号〗KS〖置位命令〗××××(数据区)××××(通道号)××(位号)××

(置位值)FCS∗CR〖结束符〗

KR(强迫复位)的格式为

@××〖单元号〗KR〖复位命令〗××××〖数据区〗××××〖通道号〗××〖位号〗××FCS∗CR〖结束符〗

这里的数据区是指出强迫置复位的内部器件名称。如IR区为CIO加空格;LR区为LR加两个空格;TIM为TIM加空格;TIMH为TIMH等。其对应关系见表A-2。

A-2 数据对应关系

强迫置位、复位是对该单元的直接赋值,不受程序影响。而数据写则要受程序影响。

强迫置位、复位只能在监控或编程方式下才能被执行。除了单点置位、复位,还有多点置位、复位。其命令码分别为FK、FR。另外,还有强迫置位、复位取消,其命令码为KC,无操作数

(5)程序读写类

其命令码分别为RP(读)、WP(写)。

RP的格式为

@××〖单元号〗RP〖命令码〗FCS〖校验码〗∗CR〖结束符〗

其响应为@××〖单元号〗RP〖命令码〗××〖响应码〗××……〖程序机器码〗FCS〖校验码〗∗CR〖结束符〗

WP的格式为

@××〖单元号〗WP〖命令码〗××……〖程序机器码〗FCS〖校验码〗∗CR〖结束符〗

其响应为

@××〖单元号〗WP〖命令码〗××〖响应码〗FCS〖校验码〗∗CR〖结束

PLC的程序什么时候都可以读,但写只能在编程状态下进行。

(6)I/O表读写类

其命令码分别为RI(读)、WI(写)。

RI的格式为

@××〖单元号〗MI〖命令码〗××〖〗FCS∗CR〖结束符〗

响应为

@××〖单元号〗MI〖命令码〗××〖响应码〗××……〖数据〗××〖FCS〗∗CR〖结束符〗

WI的格式为

@××〖单元号〗MI〖命令码〗××……〖数据〗××〖FCS〗∗CR〖结束符〗

响应为

@××〖单元号〗MI〖命令码〗××〖响应码〗××……〖数据〗××〖FCS〗∗CR〖结束符〗

这两个命令用于I/O表登记。写只能在编程状态下才能进行。

(7)QQMR(登记)及QQIR(读)类

QQMR的格式为

@××〖单元号〗QQMR〖命令码〗××××〖数据区符号〗×××××〖通道号〗××

〖位号〗,〖分割符〗……××〖FCS〗∗CR〖结束符〗

这里的分割符(,)之后还可有另一组数据。且一组之后还可另有一组。若之后没有新组,则不再插分割符,直接继之以FCS及∗CR。

响应码为

@××〖单元号〗QQMR〖命令码〗××〖响应码〗××〖FCS〗∗CR〖结束符〗

QQIR的格式为

@××〖单元号〗QQIR〖命令码〗××〖FCS〗∗CR〖结束符〗

响应码为

@××〖单元号〗QQIR〖命令码〗××……〖有关数据〗××〖FCS〗∗CR〖结束符〗

这两条命令要配合使用。登记命令执行后登记的内容将一直保持,直到PLC掉电或再登记入新的内容。故登记之后,只要发简单的QQIR命令,即可成批地按登记的要求读PLC中不同器件的数据,非常方便。但这两条命令属于第3级命令。HOSTlink单元需设成能执行3级命令时,它才能被执行。

(8)其它命令类

还有其它一些通信命令,而且随着技术发展和新机型的出现,还将有新的命令推出。这一点一定要引起使用者注意。

其它命令中常用的有通信取消及通信初始化。它们的命令码分别为XE(取消)、∗∗(初始化)。

XZ命令的格式为

@××〖单元号〗XZ〖命令码〗XX〖FCS〗∗CR〖结束符〗

∗∗的格式为

@××〖单元号〗∗∗〖命令码〗XX〖FCS〗∗CR〖结束符〗

这两条命令无响应码。这两条命令常用于通信失败时进行再起动。

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

我要反馈