基于嵌入式平台的PLC系统设计与应用
2022-03-19郭财发周伯荣
郭财发,周伯荣
(南京工程学院自动化学院, 江苏 南京 211167)
输入输出系统(input output system, IO)控制在工业机器人与数控系统控制中起到至关重要的作用[1],实现控制系统与外部工作环境的交互.目前,可编程逻辑控制器(programmable logic controller,PLC)已经得到广泛应用[2],但由于本身具有独立的硬件平台,无法实现PLC下位机软件的移植, 所以内嵌式PLC呈现出多元化的发展.在国外,德国赫优讯将现场总线技术与PLC技术相结合推出了netPLC,日本的FANUC将PLC技术嵌入到数控机床中;在国内,华中科技大学将PLC技术与人机交互界面相互结合,得到国内外很多专家的认可[3].内嵌式PLC的发展减少了硬件成本、提高了系统的灵活性.
本文设计的PLC系统打破了硬件平台的限制,可在任何控制系统中嵌入PLC技术,实现控制系统+PLC系统的合二为一.在控制系统内部直接完成IO控制,提高了控制系统对IO控制的灵活性和开放性.[4]
1 PLC系统设计
1.1 PLC系统总体方案设计
PLC系统上位机程序基于Qt开发平台来实现PLC梯形图程序的编程、编译、调试、语法检查、程序下载、文件创建和文件保存[5];PLC系统的下位机采用STM32硬件平台实现对PLC程序语句的执行及IO的控制.PLC上位机软件与PLC下位机软件通过RS485通讯实现PLC梯形图程序的调试、下载.PLC系统总体架构如图1所示.
图1 PLC系统总体架构
1.2 PLC系统上位机软件设计
1.2.1 PLC系统上位机框架
本文的PLC系统上位机软件是基于Qt开发,主要包含文件模块、编程模块、编译模块和通讯模块.文件模块主要负责PLC文件的创建、保存;编程模块主要负责PLC梯形图的绘制、更改及删除;编译模块主要负责对PLC梯形图程序的语法检查及编译;通讯模块主要负责PLC程序二进制文件的下载及调试.上位机软件各个模块之间分层明显、分工明确,良好地体现了软件分层思想.
参考文献[6]采用AOV(activity on vertex)图来存储PLC梯形图,该方法建立AOV图的逻辑较为复杂.本文采用矩阵表达式存储方法,把PLC编程区域对应到一个矩阵中,每一个梯形图编程块对应一个矩阵元素,每一个矩阵元素都保存每个编程块的属性,从而保存整个PLC梯形图程序.X0.0常闭的信息存储到元素a11,a12,…,a1n-1存储横线信息,则Y0.1信息存储到元素a1n中.依次类推,如图2所示.
图2 PLC存储对应矩阵关系
1.2.2 PLC系统上位机编译模块
编译模块作为PLC系统上位机的核心模块,实现对PLC梯形图程序的语法检查和程序编译.[7]只有通过译码模块的语法检查,才能成功地生成下位机可识别的二进制文件.本文设计的PLC系统编译规则为:每个PLC操作指令都被编译成一个32 bit的数字,由操作码、软元件1、软元件2和操作数组成.PLC指令数据组成如图3所示.
图3 PLC指令数据组成
根据本PLC系统的编译规则,图2的PLC梯形图程序经过编译模块得到的下位机可执行的二进制文件,如图4所示.
图4 可执行的二进制文件
1.3 PLC系统下位机软件设计
1.3.1 PLC系统下位机框架
PLC下位机软件主要有初始化模式、正常模式和调试模式三种系统模式.系统刚开始上电时,PLC下位机系统处于初始化模式,初始化成功进入正常模式,在接收到上位机下载或调试的信号时,下位机系统模式切换至调试模式,完成PLC的调试与程序下载.
下位机PLC系统执行PLC程序时采用经典的五级流水线:取指、译码、执行、访存和写回[7],如图5所示.
图5 经典五级流水线操作
下位机中的PLC系统介于硬件平台与控制系统的中间,实现硬件IO平台与控制系统IO之间的灵活映射及逻辑控制.由于控制系统对系统实时性要求较高,故对PLC下位机的程序进行优化.经过测试,基于STM32F103硬件平台、系统主频工作在72 MHz的情况下,执行一条PLC指令耗时仅为1 μs.带有PLC下位机的控制系统框图如图6所示.
图6 带有PLC下位机的控制系统框图
1.3.2 PLC下位机工作原理
PLC下位机软件执行PLC二进制文件,采用顺序循环扫描工作方式[8],即PLC从第一条指令开始,在无跳转的情况下顺序执行到最后一条指令.为了保证控制系统处理器资源的有效分配,PLC下位机运行PLC程序时每个执行周期最高执行1 000条PLC指令,执行过程如图7所示.
以图2第二行的PLC梯形图程序为例,经过上位机编译模块编译,第二行PLC梯形图程序对应的执行指令和执行过程[9]如图8所示.
图7 PLC执行过程
(a) 执行指令
(b) 执行过程
2 PLC系统的应用
本文设计的PLC下位机系统运行于控制软件与硬件平台之间,提高了控制系统的灵活性.在控制系统内部IO分为应用IO与系统IO.系统IO用于控制系统的系统模式、伺服状态、手动操作和运行状态等.通过开放系统IO,大大提高了硬件平台IO与系统IO之间的灵活映射;同时应用IO也可灵活映射.目前,该PLC系统已经运用于六轴工业机器人的控制系统与五轴数控系统的控制系统.
在开发数控系统过程中,数控机床的系统模式、系统运行指令及系统的手动控制都是经过数控机床的控制面板控制.由于控制面板操作逻辑的复杂性,用C语言开发其控制逻辑复杂度较高、可移植性低,故采用PLC梯形图来实现数控机床的副面板操作逻辑,增加系统的灵活性.
3 结语
本文基于嵌入式平台的PLC系统采用上位机+下位机的控制方案,可以实现机器人系统与数控系统对开关量的灵活控制.由于独立硬件的PLC系统的可移植性差,所以可移植性的PLC成为一个研究方向.虽然基于嵌入式平台的PLC系统的研究是一项非常复杂的工作,但是采用嵌入式PLC系统能够解决对控制系统的IO管理,提高控制系统的开放性和灵活性.