1、FX系列可编程控制器(PLC)通讯常用方法 目 录 1、基本通讯方法 §1。1常用的通讯方法 §1.2计算机与FX-PLC通讯结构 2、通信格式 §2.1通讯基本格式 §2。2 PLC相关通讯寄存器标志 §2。3通讯格式详解 §2.4举例 3、通讯过程 §3。1基本知识 §3。2专用通讯协议框图 §3.3专用通讯控制命令 4、附录 ASCII码表 1、基本通讯方法 §1.1常用通讯方法 FX系列PLC支持5种通讯方法 1) 计算机链接:用计算机做主机,通过RS485接口与16台PLC组网,采用专用通讯协议,在计算机与PLC之间交换数据,本资料重点解
2、决计算机链接问题,包括硬件连接、通讯参数设置、通讯格式等。 2) N网络:可以将8台PLC构成网络,无需协议,自成网络。 3) 并联:可以将2台PLC并联成网络,也无需协议,自成网络。 4) PLC用RS指令发送、接收数据,与计算机等设备进行无协议通讯交换数据. 5) 通过PLC编程接口,与计算机等设备进行数据交换,本厂采用该方式在MCGS工业组态软件基础上,开发出各类锅炉专用的计算机监控系统。 §1.2计算机链接通讯结构 RS232C FX-485RC—IF FX1N—485—BD PLC PLC PLC 计算机 ……… 1 2 16
3、 上述结构是一种采用计算机串行口与PLC链接的最基本方法,最远通讯距离50M,其通讯相关参数见下表: 通讯接口:FXON—485ADP /FX-485ADP/FX1N—485BD/FX1N—CNV—BD/FX1N-232BD可选。 通讯距离:FX1N—485BD 50M,选其它某些件,最远500M。 从站连接数:最大16台 通讯方法:半双工 数据长度:7位/8位 可选 校验: 不用/奇/偶 可选 停止位: 1位/2位 可选 波特率:300/600/1200/2400/4800/9600/19200 可选 超始符:不用/有效 可选
4、协议:格式1/格式4 可选 求和检查:不用/有效 可选 可选PLC类型:FX2N,FX2NC,FX1N,FX1S,FXON,FX,FX2C 计算机与PLC通讯所需的时间,可通过计算得到。 由PLC→计算机 通讯时间=传送数据字符总量×收发一个字符的时间+PLC的最大扫描时间×3+计算机空等待时间 由计算机→PLC 通讯时间=传送数据字符总量×收发一个字符的时间+PLC的最大扫描时间+计算机空等待时间 例:当一个字符占10位(字长7、校验1、停止位1、启动位1) 选9600波特率,则收发一个字符需1.04ms。 2、计算机链接的通讯格式 §2。1 基本格式 通
5、讯格式就是确定通讯的参量,例如:数据的长度、校验位、波特率等等,对PLC通讯格式设置由数据寄存器D8120完成,每次对D8120做了修改,即改变PLC的通讯格式,都必须关闭PLC电源,然后重新送电,新的通讯格式才能被确认。 §2.2 PLC相关的通讯标志 专用辅助继电器 描述 M8126 全局标志 M8127 通讯请求握手信号 M8128 出错标志 M8129
6、 通讯请求切换 专用数据寄存器 描述 D8120 通讯格式 D8121 从站号(最多16个) D8127 交换数据的首地址 D8128 交换数据量 D8129 网络通讯超时时间确认值 §2.3 通讯格式详解(D8120) 位号 含 义 描 述 bo 数据长度 0
7、 7位 1: 8位 b2b1 校验方式 00:不用 01:奇校验 11:偶校验 b3 停止位 0: 1位 1: 2位 b7b6b5b4 波特率 0001:300 0111:4800 0100:600 1000:9600 0101:1200 1001:19200 0110:2400 b8 0:不用 注:无协议通讯专用 b9 0:不用 同上 b12b11b10 通讯接口 000:RS485(RS422)接口 010:RS232C接口 b13 求和检查 0:不加求和码 1:自动加上求和码 b14
8、协议 0:无协议通讯 1:专用通讯协议 b15 协议格式 0:格式1 1:格式4 §2.4 举例 M8002 [MOV H4086 D8120] D8120=[0100 0000 1000 0110] 数据长度 7 校验 偶 停止位 1 波特率 9600 通讯口 RS485 求和检查 不用 协议 专用协议 协议格式 格式1 3、通讯过程 §3.1基本知识 通讯控制码:计算机与PLC之间通讯时,通过通讯控制码识别通讯任务,是计算机与PLC之间交流的语言,常用的通讯控
9、制码如下: 控制码符号 控制码代码 描述 STX 02H 数据开始 ETX 03H 数据结束 EOT 04H 传送结束 ENQ 05H 请求通讯联络 ACK 06H 响应通讯联络 LF 0AH 换行 CL 0CH 清除 CR 0DH 回车 NAK 15H 不响应 §3.2专用通讯协议框图 1) 计算机从PLC读数据 数据 ACKKK 数据 ENQ 计算机 数据 STX PLC 其过程为:计算机发出请求通讯联络,然后,将希望的任务在数据中描述,传给PLC,相关PLC获得后,根据计算机的要求,回复计算机开始回
10、传数据,并将相关数据送出,计算机获得数据后,告诉相关PLC,已经获得数据,结束本次通讯。 ENQ 数据 ACK 2) 计算机写数据到PLC中 数据 计算机 3) 专用通讯协议的基本格式 控制码+呼叫从机的站号+本机的站号+控制命令+等待+发送的数据+(求和检查)+(控制码CR+LF) 注1:求和检查是否选用由通讯格式D8120的b13决定 注2:结尾的控制码CR+LF是否选用由通讯格式D8120 的b15决定,格式1表示不用该控制码,格式4表示使用。 4) 计算机从PLC读数据的格式《格式1》 ENQ 从站号 本机站号 控制命令 等待 数据 求和检查
11、 STX 从站号 主站号 数据 ETX ACK 从站号 主站号 求和检查 5) 计算机写数据到PLC中的格式《格式1》 ENQ 从站号 本机站号 控制命令 等待 数据 求和检查 ACK 从站号 主站号 6) 通讯协议详解 a) PLC在通讯过程中,一旦收到下列之一控制码,通讯将初始化:ENQ、ACK、NAK,并响应主机。 b) 一旦收到控制码EOT或CL,通讯将初始化,不响应主机 c) 从机站号由NO.O至NO.15,PLC设定如下: D8121 15 MOV M8002 设为15号从站,16个从站并不需要顺序排列,可以自由设
12、定,但不能重号. d) 计算机主站号,使用FFH e) 控制命令是通讯所要完成的相关任务的控制字,其描述详见下一节 f) 等待时间:计算机从发送切换到接收状态所需的延迟时间,PLC从收到计算机的信息后,到开始向计算机发送信息,其最小时间间隔,是计算机必须等待的,该等待时间在0到150ms之间设定,每10ms为一段,用0- FH代表 0代表0ms,1代表10ms,……FH代表150ms 实际使用中,要大于70ms ,若PLC扫描时间超过70ms,则该等待时间要大于扫描时间 ENQ 等待时间必须长于2个扫描周期 传送开始有超过100ms延迟
13、 则:等待时间可以设定为“A”,即100ms延迟。 g) 求和检查:请参考相关说明,本文不详述 表示超时检查为60ms,可选范围1到255 h) 超时检查 MOV K6 D8129 M8002 §3.3专用通讯协议中的控制命令 本文的主导目的是在锅炉控制系统中,进行计算机链接,为了确保锅炉的可靠、稳定运行,只允许从PLC中读信息到计算机中,禁止向PLC写数据,以防止发生不可预计的意外。因此,下面只对部分相关控制命令进行描述,其它详细内容,请参考相关通讯手册. 1) 控制命令 命令1: 批量读PLC位单元 符号: BR
14、 ASCⅡ码:42H ,52H 描述: 从PLC位单元(X、Y、M、S、T、C)读一批数据,最大54位 命令2: 批量读PLC字单元 符号: WR ASCⅡ码:57H, 52H 描述: 从PLC位单元组(X、Y、M、S)读一批数据,或从PLC字单元(D、T、C)读一批数据,最大13字 2) FX1S PLC可以读取的数据区 位单元 范围 进制 X X0000—X0017 8进制 Y Y0000-Y0015 8进制 M M0000—M0511 10进 S S0000—S0127 10进 M M8000-M8254 10进 T
15、 TS000—TS063 10进 C CS000-CS031 CS235—CS254 10进 字单元 范围 T TN000—TN063 C CN000—CN031 CN235—CN254 D C0000-D0255 D8000-D8255 3)命令详解《不用求和码,格式1》 a) 批量从PLC中读位单元数据到计算机中 ENQ 从站号 本机站号 BR 等待 位单元 首地位 数据批量 STX 从站号 主站号 相关数据 ETX ACK 从站号 主站号 由上述举例可以看出,除已经介绍的控制码外,其它命令码,主从站
16、号及数据等,由相应的ASCⅡ码表达,对应的字节数为:控制码:1字节 从站号:2字节 主站号:2字节 命令码:2字节 等待时:1字节 首地址:5字节 批 量:2字节 相应的ASCⅡ码表,请参看本书的附录A PLC位单元和字单元中数据的含义,视具体锅炉而定。 举例:计算机由从站5中读X0开始的连续6点开关量到主站中,假设从站5是一台威索燃气蒸汽炉,触摸屏控制系统。 则:X0:停炉按钮 0/1:按下/正常位 X1:高水位 0/1:正常/高水位 X2:补充水位 0/1:正常/需补充水位 X3:低水位
17、 0/1:正常/水位低 X4:超高压力 0/1:超压报警/正常 X5:高压停炉 0/1:高压停炉/允许燃烧点 若X0-X5相应为:101010(按钮下正常位,水位在补水位,压力在高压停炉点),则相应的通讯命令如下 ENQ 05H 05 30H 35H FF 46H 46H BR 42H 52H A 41H X0000 58H 30H 30H 30H 30H 06 30H 36H STX 02H 05 30H 35H ETX 03H ACK 06H 00 30H 35H FF 46H
18、 46H 101010 31H, 30H,31H,30H 31H,30H FF 46H 46H b) 批量从PLC中读字单元数据到计算机中 ENQ 从站号 主站号 WR 等待 字单元 首地位 数据批量 STX 从站号 主站号 相关数据 ETX ACK 从站号 主站号 举例:计算机由从站0中读D11开始的连续2点到主站中。 同上例,则: D11:锅炉的工作状态 0:等待工作 9:大火燃烧 1:强制手动吹扫 10:燃气压力低,停火 2:风门打开 11:燃气压力低停火,后扫 3:预扫炉 12:压力自控停火 4:风门
19、关至点火位 13:压力自控停火,后扫 5:准备点火 14:手动停炉,后扫 6:开阀,点火 15:故障停炉 7:手动强制小火燃烧 16:故障停炉,后扫 8;程序强制小火燃烧 17:正在检漏 D12:锅炉故障码 0:高水位 14:风门关闭故障 6:关阀保护 15:风门关小故障 7:风压不足 16:风门打开故障 10:低水位 18:故障见火 11:蒸汽超高压力 19:故障熄火 13:风门控制失效 20:点火失败 若D11=0009H D12=0000H,即:大火燃烧,高水位.则相应的通讯命令如下: ENQ 05H 00 30H 30H FF 46H 46H WR 57H 52H 0 30H D0011 44H 30H 30H 31H 31H 02 30H 32H STX 02H 00 30H 35HH ETX 03H ACK 06H 00 30H 30H FF 46H 46H 0009 30H, 30H 30H,31H 0000 30H,30H 30H, 30H FF 46H 46H 4、附录A ASCII码表如下:






