您现在的位置是:首页 > PLC技术 > PLC技术

PLC与上位机通信中的FX系列PLC通信协议

来源:艾特贸易2017-06-04

简介PC 中必须依据所连接 PLC 的通信规程来编写通信协议,所以我们先要熟悉 FX 系列 PLC 的通信协议。 1 .计算机与 PLC 链接数据流的传输格式 计算机和 PLC 之间数据交换和传输(也称数据流

    PC中必须依据所连接PLC的通信规程来编写通信协议,所以我们先要熟悉FX系列PLC的通信协议。

    1.计算机与PLC链接数据流的传输格式

    计算机和PLC之间数据交换和传输(也称数据流)有3种形式:计算机从PLC中读数据;计算机向PLC写数据和PLC向计算机写数据。不论计算机和PLC之间交换和传输数据时是哪种数据流形式,都按图7-21的格式进行。

 数据传输的基本格式

    7-21  数据传输的基本格式

    (1)控制代码

    控制代码如表7-2所示。PLC接收到单独的控制代码EOT(发送结束)和CL(清除)时,将初始化传输过程,此时PLC不会作出响应。在以下几种情况时,PLC将会初始化传输过程:

    ①电源接通;

    ②数据通信正常完成;

    ③接收到发送结束信号(OT)或清除信号(CL)

    ④接收到控制代码NAK;

    ⑤计算机发送命令报文后超过了超时检测时间。

    计算机使用RS-485接口时,在发出命令报文后,如果没有信号从PLC传输到计算机接口,就会在计算机上产生帧错误信号,直到接收到来自PLC的文本开始(STX)、确认(ACK)和不能确认(NAK)信号之中的任何一个为止。检测到通信错误时,PLC向计算机发送不能确认(NAK)信号。

    用计算机链接协议从计算机向PLC发送的命令执行完后,必须相隔约两个PLC扫描周期,计算机才能再次发送命令。

    7-2    腔制代码

 腔制代码

    (2)工作站号

    工作站号决定计算机访问丽一台PLC,同一网络中各PLC的站号不能重复,否则将会出错。但不要求网络中各站的站号是连续的数字。在FX系列中用特殊数据寄存器D8121来设定站号,设定范围为00H0FH

    (3) PLC标识

    PLC的标识号用于识别三菱公司A系列PLCMELSECNET (II)MELSECNET/B网络中的CPU,用两个ASCII字符来表示。FX系列PLC的标识号用十六进制数FF对应的两个ASCII字符46H46H来表示。

    (4)命令

    计算机链接中的命令用来指定操作的类型,例如读、写等,见表7-3

    7-3    计算机链接中的命令

 计算机链接中的命令

    (5)报文时间

    计算机在接收和发送状态之间转换时,需要一定的延迟时间。报文等待时间是用来决定当PLC接收到从计算机发送过来的数据后,需要等待的最少时间,然后才能向计算机发送数据。报文等待时间以1.0ms为单位,可以在01.50ms之间设置,用ASCII码表示。

    (6)数据字符

    数据字符即所需发送的数据报文信息,其字符个数由实际情况决定。如读命令中的数据字符包括需要读取数据信息的存储器首地址和要读取数据的位数或字数。PLC返回的报文数据区丰则是要读取的数据。

    (7)校验和代码

    校验和代码用来校验接收到的信息中数据是否正确。将报文的第一个控制代码与校验和代码之间所有字符的十六进制数形式的ASCII码求和,把和的最低两位十六进制数作为校验和代码,并且以ASCII码形式放在报文的末尾。

    (8)控制代码

    D8120b15位设置1时,选择控制协议格式4  PLC在报文末尾加上控制代码CR/LF(回车、换行符)。

    2.计算机从PLC读取数据

    计算机从PLC读取数据的过程分为ABC3部分(见图7-22)。下面以控制协议格式4为例,介绍计算机读取PLC数据的过程及数据传输格式。

 计算机读取PLC数据的数据传输格式

    7-22  计算机读取PLC数据的数据传输格式

    (1)计算机向PLC发送读数据命令报文(A区),以控制代码ENQ(请求)开始,后面是计算机要发送的数据,数据按从左至右的顺序发送。

    (2) PLC接收到计算机的命令后,向计算机发送计算机要求读取的数据,该报文以控制代码STX开始(B部分)

    (3)计算机接收到从PLC中读取的数据后,向PLC发送确认报文,该报文以ACK开始(C部分),表示数据已收到。

    (4)计算机向PLC发送读数据的命令有错误时(例如,命令格式不正确或PLC站号不符等),或在通信过程中产生错误,PLC将向计算机发送有错误代码的报文,即B部分以NAK开始的报文,通过错误代码告诉计算机产生通信错误可能的原因。计算机接收到PLC发来的有错误的报文时,向PLC发送无法确认的报文,即C部分以NAK开始的报文。

    3.计算机向PLC写数据

    计算机向PLC写数据的过程分为AB两部分(见图7-23)。

    (1)计算机首先向PLC发送写数据命令(图7-23中的A部分)。

    (2) PLC接收到写数据命令后,执行相应的操作,执行完成后向计算机发送确认信号(B部分以ACK开头的报文),表示写数据操作已完成。

    (3)若计算机发送的写命令有错误或者在通信过程中出现了错误,PLC将向计算机发送B部分中以NAK开头的报文,通过错误代码告诉计算机产生通信错误的可能原因。

 计算机向PLC写数据的数据传输格式

    7-23  计算机向PLC写数据的数据传输格式