FX系列PLC与计算机采用RS-232C标准,通信协议的有关规定如下所述。
1.数据格式
通信采用异步串行方式,通信协议的数据交换格式为字符串的方式,由奇偶校验位、起始位和停止位、数据位组成。数据位利用字符串的ASCII码表示。数据是以帧为单位发送和接收的,FX系列PLC与计算机通信的数据格式如图5.5所示。
2.通信控制字符
通信控制字符有ENQ、ACK、NAK、STX和ETX共5个。PLC和计算机之间的数据传输以帧为单位,每一帧为10个字符,其中ENQ、ACK或NAK可以构成单字节字符帧;其余的字符在发送和接收时,必须以字符STX为起始符,ETX为结束符,否则将不能保持同步,产生错帧。表5.1所示为FX系列PLC与计算机的通信控制字符及含义。
表5.1 FX系列PLC与计算机的通信控制字符及含义
字符 ASCⅡ码 数据格式 注 释
ENQ 05H 1100001010 来自计算机的查询信号
ACK 06H 1100001100 无校验错误,PLC对ENQ的确认应答信号
NAK 15H 1100101010 检测到错误,PLC对EHQ的否认应答信号
STX 02H 1100000100 数据(信息帧)的起始标志
ETX 03H 1100000110 数据(信息帧)的结束标志
3.通信命令
FX系列PLC有4条通信命令,分别是读命令、写命令、强制为ON命令和强制为OFF命令。表5.2所示为FX系列PLC的通信命令代码及功能说明。
表5.2 FX系列PLC的通信命令代码及功能说明
命令 命令代码 目标元件 功能说明
读 0:ASC码30H X.YM, S,T.C.D 读软继电器状态及数据
写 1:ASC码3IH X,Y,M.S,T,C,D 将数据写入软继电器
强制为ON 7:ASC码37H X,YM.S.T,C 强制为ON
强制为OFF 8:ASC码38H X,Y,M,S,T,C 强制为OFF
4.报文格式
多字符传送时构成多字符帧,一个多字符帧由字符STX、命令码、数据段、字符ETX及校验位组成。计算机向PLC发出的报文格式如图5.7(a)所示,PLC向计算机发出的应答报文格式如图5.7(b)所示。
图5.7 报文格式
5.传输规程
在FX系列PLC与计算机的通信中,无论是读或写操作,PLC始终为被动状态,都是由计算机发出信号,传输规程说明如图5.8所示。
图5.8 传输规程说明
开始通信由计算机发出一个控制字符ENQ,去询问PLC是否做好通信准备,同时也可以检查PLC与计算机之间的链接是否正确。当PLC接收到该字符后,正处在STOP状态,则立即做出回答,如通信有错,则回答NAK,如通信正常,则回答ACK。若PLC正处于RUN状态,则要等待至本次扫描结束时(至END指令)才能回答。
如果计算机发出一个ENQ经过Ss后,没有收到回答,则计算机会再次发出ENQ控制字符,仍没有回答说明链接有错。在计算机收到回答字符ACK后,就可以进行数据通信了。
6.通信格式
PLC和计算机通信的详细协议采用PLC内部的特殊辅助继电器D8120进行设置,具体的设置内容为:数据长度、校验形式、传输速率和协议方式等。图5.9所示为D8120设置示例,如果采用模式1标准,图中梯形图程序的设置为:无协议通信、传送数据长度为7位、偶校验位、1位停止位和9600b/s数据通信速率。对于多台PLC链接时,还要用D8121设置PLC的站号。站号的设置范围为00~07CH。
采用D8129设置检验时间。检验时间指计算机向PLC传送数据失败时,从传送开始至接收完最后一个字符所等待的时间。计算机向PLC传送的字符串的格式如图5.10所示。
图5.9 D8120设置示例
图5.10 字符串的格式