谢华锋,胡平平,宋林章,唐 杰(北京中油瑞飞信息技术有限责任公司,北京 100007)
PLC可扩展功能的软硬件实现方法
谢华锋,胡平平,宋林章,唐杰(北京中油瑞飞信息技术有限责任公司,北京100007)
PLC(Programmable Logic Controller)因其简明的编程语言、良好的通用性、低廉的维护成本和稳定的性能得到了各行各业的认可,目前PLC在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保等各个行业。然而,行业中对PLC控制能力需求的增加,一方面增加了对PLC I/O点数的需求,另一方面也对单体PLC的性能提出了更高的要求。本文针对以上两各方面的需求提出了两种PLC控制器I/O可扩展方案的软硬件实现方法。
PLC控制器由硬件驱动层、软件驱动层、操作系统层和PLC内核应用层组成。硬件驱动层为软件驱动层提供外部硬件的操作接口,包括现场I/O扩展模块的采集驱动、通用RS485通信接口、RS232通信接口、以及2路以太网通信口接口和CAN通信接口。软件驱动层为嵌入式LINUX内核提供标准的控制接口,通过软件驱动层,操作系统层对硬件驱动层设备进行统一的管理、控制。PLC内核应用层,包括PLC内核、MODBUS协议簇、DNP3.0、IEC60870-5-104、 CAN自定义 CAN-I/O BUS协议和ETH-I/O BUS协议。
可扩展的PLC控制器硬件由核心板和基板两部分组成。CPU、内存、NANDFLASH、FRAM、独立看门狗等控制核心集中在核心板上,外部数据接口和通信接口集中在底板上。如图1所示。这种硬件结构化设计,实现了核心接口电路与外围接口电路在物理上的分离,降低了设计难度,加快研发设计速度,提高了核心电路的技术复用率且便于产品生产和升级。
图1 (a)PLC主控板核心板原理框图
图1 (b)PLC主控板基板原理框图
由图1(a)可知PLC控制器CPU采用ATMEL的32位ARM9工业级处理器;内存系统采用256MB NAND FLASH、128MB SDRAM;16KB SPI FRAM保证系统在掉电情况下仍可保存数据;WATCH DOG确保了系统运行的绝对安全。
图1(b)所示基板集成了3路RS485通信接口(端子)、1路RS232通信接口(RJ45)、2路以太网通信接口(RJ45),和1路CAN总线接口(接插件)。电源采用独立的DC/DC隔离电源模块,隔离电压可达2kVDC,支持反接保护和短路保护。
通信接口电路设计采用光耦隔离方式。由于光耦合器输入/输出间互相隔离且电信号传输具有单向性特点,因而具有良好的电绝缘和抗干扰能力。另外,光耦合器的输入端属于电流型工作的低阻元件,具有很强的共模抑制能力,因此在长线信息传输中作为终端隔离元件可以大大提高信噪比。
3.1CAN总线接口电路
CAN总线接口电路主要包含控制器部分、收发器部分、隔离部分、外围电路部分及供电电源部分,分别如图2所示。
图2 (a)CAN供电电路
图2 (b)CAN收发指示电路
图3 以太网硬件电路
图2 (c)CAN控制、收发、隔离电路
CAN总线通信的核心是CAN总线控制器,本设计采用CPU片上集成CAN控制器实现CAN数据链路层、传输层功能。物理层功能通过CAN总线收发器芯片PCA82C250T实现。
3.2以太网总线接口电路
以太网总线接口电路主要包含以太网控制器部分、收发器部分、隔离部分、外围电路部分及供电电源部分,如图3所示。
以太网总线通信的核心是以太网总线收发控制器,本文采用CPU片上集成控制器实现以太网数据链路层、传输层功能,物理层功能通过以太网总线收发器芯片DM9162BI实现。
可扩展的PLC控制器的软件实现方法包括自定义CAN-I/O BUS协议和ETH-I/O BUS协议。针对不同的应用场合,需要对PLC控制器的性能、I/O点数需求进行综合评估。
4.1CAN-I/O BUS协议扩展功能软件实现
为实现PLC扩展模块CAN链路紧凑互连,结构上通过,采用20PIN标准接插件,将PLC与I/O扩展模块链接在一起,实现设计的紧凑和一体化。软件上采用CAN-I/O BUS协议实现与I/O扩展模块双向通信。CAN-I/O BUS总线协议基于CAN2.0B串行通信协议,采用应答传输机制。CAN协议涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层,如图4所示。
图4 ISO/ISO基本参数模型和CAN协议
图4所示的物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。数据链路层分为MAC子层和LLC子层,MAC子层是CAN协议的核心部分。数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程。具体地说,就是消息的帧化、仲裁、应答、错误的检测或报告。
CAN2.0 B协议数据帧由包括帧起始、仲裁段、控制段、数据段、CRC段、ACK段和帧结束7个段构成。帧起始表示数据帧开始的段;仲裁段表示数据的优先级;控制段由6位构成,表示数据段的字节数;数据段可包含0~8个字节的数据,从MSB(最高位)开始输出;CRC段由15位的CRC顺序和1位的CRC界定符构成,用于检查帧的传输错误;ACK段用来确认是否正常接收,由ACK槽和ACK界定符2位构成;帧结束由7位隐性位构成,表示数据帧结束。我们在CAN2.0 B协议格式封装上进行了扩展,形成了自定义的报文格式,如图5所示。
图5 CAN-I/O BUS报文格式
图5所示的报文格式中,SRR和IDE为1,RTR为0。协议的数据区为固定8字节长度,主从节点在发送数据时把DLC恒定设置为1000。另外,仲裁区包含方向标识、从节点号、协议号、总包号、包序号和板卡类型等信息。
4.2ETH-I/O BUS协议扩展功能软件实现
PLC对I/O点状态控制与监测,采用扫描方式。随着I/O点数需求的增多,通过CAN通讯进行I/O点数扩展的方式,必然会导致扫描周期增长,进而降低PLC的实时性。为了在提升I/O点数的同时,不会降低PLC的性能,在PLC的CAN链路基础上,软件采用ETH-I/O BUS协议实现PLC从节点扩展(PLC主控作为主节点)。从节点在结构上与主节点采用相同的方式,使用CAN链路进行I/O扩展模块链接。该部分数据处理交由从节点全权处理,而主节点只需要通过以太网与从节点进行数据交互,就从理论上实现PLC的I/O扩展模块的无极限扩展。ETH-I/O BUS总线协议基于以太网通信,采用应答传输机制。
图6(a)所示的请求数据报文格式中,请求报文中包括I/O点数状态信息设置、I/O点数状态信息采集控制。请求报文中,还包含协议类型、从节点、帧方向、帧发送时间、协议版本信息、I/O扩展模块数量、I/O扩展模块类型、I/O点地址以及当前I/O点状态等信息。
图6(b)所示的响应数据报文格式中,响应报文包含协议类型、从节点、帧方向、I/O扩展模块数量、I/O扩展模块类型、I/O点地址以及当前I/O点状态等信息。
图6 (a) ETH-I/O BUS请求数据报文格式
图6 (b) ETH-I/O BUS响应数据报文格式
本文提出的可扩展PLC控制器,CAN-I/O BUS结构上可通过20PIN标准接插件与其他I/O扩展模块实现一体化连接;ETH-I/O BUS结构上可通过RJ45接口,与其他从节点进行级连(可直连或通过交换机);电气上可通过CAN-I/O BUS、ETH-I/O BUS协议实现互连、数据传输;支持多种工控编程语言,方便工程上进行二次开发。另外,合理的硬件/软件设计提供了一套高效率、低成本的I/O扩展方案。在提升PLC控制器产品性能的前提下,实现了PLC控制器的I/O点数扩展。同时也确保了PLC控制器在极端环境下也能稳定、可靠地正常工作。
[1] 李道霖. 电气控制与PLC原理及应用[M]. 北京: 电子工业出版社, 2004.
[2] 吴晓君, 杨向明. 电气控制与可编程控制器应用[M]. 北京: 中国建材工业出版社, 2004.
[3] 张志学, 肖志怀, 李朝晖. 以太网与现场总线[J]. 工业控制计算机, 2001, (7).
[4] 魏庆福, 现场总线技术的发展与工业以太网综述[J]. 工业控制计算机, 2002, (1).
[5] 陈鲁华. 基于CAN总线的网络化PLC技术研究与实现[D]. 南京航空航天大学, 2003.
[6] 马洪涛, 基于以太网的BA系统可编程序控制器设计[D]. 南京工业大学, 2005.
Software and Hardware Implementation of Extensible Function in PLC
针对当前油气生产井场站对PLC的功能需求不断增强,在保证不降低产品性能的前提下,文档提出了两种I/O扩展功能的软硬件实现方法,主要研究讨论了低速通信接口(CAN总线接口)和高速通讯接口(以太网接口)下,对PLC的I/O点数进行扩展。
I/O扩展;PLC;CAN;以太网
On the premise of stabilizing product performance, and the constantly stable growth of functional requirement for PLC controller at oil and gas production well site stations, this paper proposes two methods for software and hardware implementation of I/O extension function. We mainly study the extension of PLC I/O points based on low-speed communication interface (CAN BUS interface) and high-speed communication interface (Ethernet interface).
I/O extension; Programmable Logic Controller (PLC); Controller area network (CAN); Ethernet
B
1003-0492(2016)11-0088-04
TP342+.3
谢华锋(1974-),男,河南漯河人,软件工程师,本科,现就职于北京中油瑞飞信息技术有限责任公司,主要研究方向为嵌入式开发。
胡平平(1986-),男,海南海口人,自动化工程师,本科,现就职于北京中油瑞飞信息技术有限责任公司,主要研究方向为工业自动化控制。
宋林章(1987-),男,河南信阳人,软件工程师,本科,现就职于北京中油瑞飞信息技术有限责任公司,主要研究方向为嵌入式软件开发。
唐杰(1988-),男,河南邓州人,软件工程师,本科,现就职于北京中油瑞飞信息技术有限责任公司,主要研究方向为嵌入式软件开发。