理论教育 欧姆龙HostLink协议简介

欧姆龙HostLink协议简介

时间:2023-07-01 理论教育 版权反馈
【摘要】:高档及新机型可接受的命令较多。不然将根据命令执行情况返回不同代码。出厂时,PLC默认节点号为00。从图6-181可知,它的首响应帧没有结束“”字符。PLC收到回车应答符后,再发后续数据,即中间帧。欧姆龙PLC为3种状态,即编程、监控及运行。这3种状态可由PLC读写,其命令码分别为MS及SC。而其第一个字的08及09位分别代表PLC的几种工作状态。

欧姆龙HostLink协议简介

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

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

1.通信协议要点

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

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

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

978-7-111-39745-8-Chapter07-319.jpg

图6-179 计算机命令帧格式

978-7-111-39745-8-Chapter07-320.jpg

978-7-111-39745-8-Chapter07-321.jpg

图6-180 PLC响应帧格式

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

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

(2)多帧通信。如果通信交换的字符须超过131字节,可以进行拆分,用多次通信,使每次都少于131个字符。也可使用多帧通信。如读、写程序,无法拆分。只能用多帧通信。多帧通信分:多帧响应及多帧命令,如图6-181、图6-182所示。

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

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

978-7-111-39745-8-Chapter07-322.jpg

图6-181 多帧响应

978-7-111-39745-8-Chapter07-323.jpg

图6-182 多帧命令

(3)返回码。表6-29所示为主要的返回码。用好它,可便于通信程序调试。

表6-29 返回码及其含义

978-7-111-39745-8-Chapter07-324.jpg

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

一般用等级1、2。但使用编程软件要用到等级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,@00 RH 00000002∗CR

例2,@00 WH 0000 FFFF FFFF∗CR

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

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

@00 RH 00 XXXX XXXX FCS∗CR(对例1)

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

@00 WH 00 FCS∗CR(对例2)

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

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

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

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

位09位08

0 0 编程

1 0 运行

1 1 监控

若写状态,其数据仅一个字节,其1、0位的取值与要写的状态对应如下:(www.daowen.com)

位1位0

0 0 编程

1 0 监控

1 1 运行

(4)强迫置位与复位类,其命令码分别为KS、KR。

KS(强迫置位)的格式为

@××〖单元号〗KS〖置位命令〗××××(数据区)××××(通道号)××(位号)××(置位值)FCS∗CR〖结束符〗

KR(强迫复位)的格式为

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

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

表6-30 数据对应关系

978-7-111-39745-8-Chapter07-325.jpg

强迫置位、复位是对该单元的直接赋值,不受程序影响。而数据写,则要受程序影响。强迫置位、复位只能在监控或编程方式下才能被执行。除了单点置位、复位,还有多点置位、复位。其命令码分别为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中不同器件的数据,非常方便。但这两条命令属于第三级命令。Host Link单元需设成能执行三级命令时,它才能被执行。

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

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

XZ命令的格式为

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

∗∗的格式为

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

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

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

我要反馈