一种基于状态机的多工序设备生产控制装置及方法
【专利摘要】本发明公开了一种基于状态机的多工序设备生产控制装置及方法,包括上位机、与上位机连接的FPGA模块以及用于控制各道工序工作的ARM模块,其中每个ARM模块控制其中一道工序的工作;所述用于控制各道工序工作的ARM模块作为子状态机,分别与作为主状态机的FPGA模块连接,与FPGA模块组成星型拓扑结构;所述FPGA模块连接用于转移工件的电机以及用于检测工件位置的传感器。FPGA模块通过各交互接口模块与ARM模块连接,本发明根据ARM模块的状态以及工件在多工序设备生产中的位置控制相应ARM模块启动,当客户需求更改时,能更方便地修改及组建新工序的子状态机,具有可扩展性强、成本低以及稳定性高等的优点。
【专利说明】一种基于状态机的多工序设备生产控制装置及方法
【技术领域】
[0001] 本发明涉及一种多工序设备生产控制装置及方法,特别涉及一种基于状态机的多 工序设备生产控制装置及方法。
【背景技术】
[0002] 为了提高工件设备的生产加工效率以及节约生产加工成本,很多工件设备在加工 生产过程中采用多工序设备进行相应处理,在每道工序处理过程中需要针对每道工序的时 间及工作状态等进行合理的控制,现有的多工序设备的生产流程控制通常采用以下几种方 法:
[0003] 1、采用高速工控机做上位机控制器的编写,并通过PCI总线插入数据采集卡实现 对外部信号的输入及输出。利用工控机的高速运算能力,对所有工序进行集中管理及控制。 虽然能高速地控制整个系统,但是存在成本高的缺点。
[0004] 2、针对成本控制问题,采用PLC取代第1种方法中的高速工控机和数据采集卡的 方案,利用PLC更稳定、输出能力更强的输出元件及输入单元,直接连接外部机械装置进行 控制。虽然能解决成本问题,但由于PLC性能相对较差,方案仍存在无法运行高级算法、可 扩展性差等缺点。
[0005] 3、采用多片嵌入式控制板卡,分别控制各道工序,控制板块间相互通信来协调整 个流程的过程控制。该方案很好地解决了成本问题,且随着嵌入式技术发展,很多嵌入式芯 片的运算能力及资源得到了提升。但这种分散式的控制思想,存在整体协调困难的缺点。当 需要增加工序时候,需要修改各个板卡间的信息,可扩展性较差。
【发明内容】
[0006] 本发明的目的在于克服现有技术的缺点与不足,提供一种成本低、可扩展性强以 及稳定性高的基于状态机的多工序设备生产控制装置。
[0007] 本发明的另一目的在于提供一种上述装置实现的多工序设备生产控制方法。
[0008] 本发明的第一目的通过下述技术方案实现:一种基于状态机的多工序设备生产控 制装置,包括上位机、与上位机连接的FPGA(Field Programmable Gate Array,现场可编程 门阵列)模块以及用于控制各道工序工作的ARM模块,其中每个ARM模块控制其中一道工 序的工作;所述用于控制各道工序工作的ARM模块作为子状态机,分别与作为主状态机的 FPGA模块连接,与FPGA模块组成星型拓扑结构;所述FPGA模块连接用于转移工件的电机 以及用于检测工件位置的传感器。
[0009] 优选的,所述FPGA模块还连接有故障显示模块和故障恢复模块,通过故障显示模 块显示子状态机ARM模块的故障,通过故障恢复模块对故障的子状态机进行复位。
[0010] 优选的,所述FPGA模块连接有多个交互接口阵列模块,通过各交互接口阵列模块 与各ARM模块连接,其中各交互接口阵列模块包括控制接口,状态接口以及数据传输接口; 所述控制接口和状态接口采用高速光耦做并行传输,所述数据传输接口采用RS232协议。
[0011] 优选的,FPGA模块和ARM模块上均连接有电机控制模块和I/O端口模块;所述 FPGA模块通过其上连接的电机控制模块与用于转移工件的电机连接,FPGA模块通过其上 连接的I/O端口模块与用于检测工件位置的传感器连接;
[0012] 所述与FPGA模块和ARM模块连接的I/O端口模块通过MOSFET驱动电路作为信号 输出,通过高速光耦接收外界信号输入;所述与FPGA模块和ARM模块连接的电机控制模块 包括PWM脉冲调速输出单元和编码器反馈输入单元两部分。
[0013] 优选的,所述FPGA模块内部中包括串口收发模块以及仲裁逻辑模块,其中仲裁逻 辑模块包括帧识别状态机、查表比较器、FIFO缓存区和UART切换开关阵列;其中上位机串 口与FPGA模块的串口收发模块连接,FPGA模块的串口收发模块连接帧识别状态机,帧识别 状态机通过查表比较器与UART切换开关阵列连接,帧识别状态机还通过FIFO缓存区以及 串口收发模块与UART切换开关阵列连接;FPGA模块通过UART切换开关阵列与各ARM模块 连接;
[0014] 所述FPGA模块中配置有与其连接的各ARM模块的State_Byte寄存器,用于追踪 记录各ARM模块的当前状态。
[0015] 本发明的第二目的通过以下技术方案实现:一种基于状态机的多工序设备生产控 制装置的控制方法,包括以下步骤:
[0016] S1、上位机通过串口向FPGA模块发送数据包,FPGA接收并识别数据包;
[0017] S2、FPGA模块从上位机串口接收到数据包后,对所接收到数据包进行分析和处理, 根据从上位机接收到的数据包对相应的ARM模块进行对应的参数设置,并且控制所有的 ARM模块进行复位;
[0018] S3、FPGA模块监听各ARM模块的状态以及工件在多工序设备生产中的位置,在工 序中工件到位后以及ARM模块复位完成后,启动工件所在工序的ARM模块,通过工件所在工 序的ARM模块控制对应工序的工作;
[0019] S4、当某道工序工作完成后,该道工序的ARM模块向FPGA模块发送工作完成信号, 通知FPGA模块该道工序完成工作;
[0020] S5、待FPGA模块收到当前所启动的各ARM模块发送的工作完成信号,控制多工序 设备生产中用于转移工件的电机工作,将上一道工序中的工件分别转移到下一道工序中, 并且向第一道工序补充工件;待工件转移完成后,ARM模块自动复位,等待下一次的启动, 然后回到步骤S3,完成各工件的多工序生产加工。
[0021] 优选的,所述步骤S1中上位机向FPGA模块发送的数据包的帧格式为:包括两字节 的数据帧头、单字节的功能号、单字节的长度、单字节的工序号、长度字节的数据、单字节的 校验码以及两字节的数据帧尾。
[0022] 更进一步的,所述步骤S2中FPGA模块对从上位机接收到数据包后分析和处理过 程如下:
[0023] S2-1、上位机的串口数据包通过MAX3232电平转换后进入FPGA模块内部的串口收 发模块,通过串口收发模块对接收到的数据包进行数据重组,并且传送给FPGA模块内部的 帧识别状态机;
[0024] S2-2、帧识别状态机判断当前接收到的数据包是否有效;若是,则将当前接收到的 数据包存放在FIFO缓存区;
[0025] S2-3、根据预定的功能表,通过FPGA模块内部的查表比较器对FIFO缓存区的数据 包的功能号进行查找表比较,根据比较结果判断数据包要实现的参数设置功能;
[0026] S2_4、FPGA模块根据从上位机接收到数据包帧格式中的工序号找到所要进行参数 设置的ARM模块,然后对该ARM模块进行相应的参数设置。
[0027] 优选的,还包括以下报错步骤:
[0028] S6-1、当ARM模块对应工序发生故障时,产生一个Error信号,以向FPGA模块进行 报错;当FPGA模块通过其与ARM的接口采集到Error信号时,得知报错的ARM模块子状态 机,进入报警状态;
[0029] S6-2、FPGA模块采集到Error信号后,从其与报错ARM模块的接口中读取ARM子 状态机的报错状态号,将报错的ARM模块子状态机号和报错状态号通过故障显示模块上显 示;并且暂停报错的ARM模块的运行;
[0030] S6-3、用户通过故障显示模块上显示的状态机号和报错状态号定位出现故障的工 序及相应动作,并对出现故障的工序进行故障排查,待故障消除后,通过FPGA模块连接的 故障恢复模块向FPGA模块发送信号;
[0031] S6-4、FPGA模块接收到故障恢复模块发送的信号后,发送复位信号至报错的ARM 模块,对出现报错的ARM模块进行复位;
[0032] S6-5、报错的ARM模块复位后,发送复位完成信号给FPGA模块,FPGA模块退出报 警状态。
[0033] 更进一步的,FPGA模块监听的各ARM模块的状态包括运行态、完成态、待机态和中 断态;FPGA模块和各ARM模块端口之间通信的信号包括VaiId信号、Over信号、ARM模块运 行状态信号、Error信号、RXD信号以及TXD信号;
[0034] 当所述步骤S3中FPGA模块启动ARM模块时,FPGA模块向被启动的ARM模块传送 Vai Id信号,当ARM模块监听到Valid信号后,进入运行态,控制相应工序的工作;
[0035] 当所述步骤S4中某道工序工作完成后,该道工序的ARM模块向FPGA模块发送一 个Over信号,ARM模块进入完成态,ARM模块控制相应工序停止工作;
[0036] 当所述步骤S3中FPGA模块监听到各ARM模块复位完成但相应工序中不存在工件 时,ARM模块进入到待机态;
[0037] 当所述步骤S6中ARM报错时,FPGA采集到Error信号;FPGA模块控制报错ARM模 块暂停运行,ARM模块进入中断状态;
[0038] FPGA模块中ARM模块的State_Byte寄存器待机态标志位在系统上电回原点后、 或在工件转移完成后且没有检测到ARM模块对应工序中存在工件时置高,在该ARM模块接 收到FPGA模块的Vaild信号后清零;当ARM模块的State_Byte寄存器待机态标志位置高 时,该ARM模块为待机态;
[0039] FPGA模块中ARM模块的State_Byte寄存器运行态标志位在该ARM模块接收到的 FPGA模块的Vaild信号后被置高,在该ARM模块接收到Over信号后清零;当ARM模块的 State_Byte寄存器运行态标志位置高时,该ARM模块为运行态;
[0040] FPGA模块中ARM模块的State_Byte寄存器完成态标志位在该ARM模块接收到 的Over信号后被置高,在该ARM模块对应工序的工件被转移后清零;当ARM模块的State_ Byte寄存器完成态标志位置高时,该ARM模块为完成态;
[0041] FPGA模块中ARM模块的State_Byte寄存器中断态标志位在该ARM模块发送Error 信号到FPGA模块时或者接收到RXD串口数据的挂起指令时置高,当ARM模块的State_Byte 寄存器中断态标志位置高时,该ARM模块为中断态。
[0042] 本发明相对于现有技术具有如下的优点及效果:
[0043] (1)本发明中FPGA模块作为主状态机,独立控制各工序工作的ARM模块作为子状 态机,FPGA模块根据工序设备生产的需要控制相应的ARM模块启动运行,从而协调管理各 ARM模块子状态机,通过单片FPGA模块搭载多片ARM模块的嵌入式方案实现对多工序设备 生产的控制,具有成本低的优点,将生产过程控制中所需的实际操作抽象封装为状态接口, 降低了工序间的耦合度,增强了系统可扩展性、可维护性和独立性,当客户需求更改时,能 更方便地修改及组建新工序的子状态机,具有可扩展性强的优点。本发明FPGA模块在检测 到工序中工件到位后以及ARM模块复位完成后才开启相应ARM模块,并且在启动的所有ARM 模块完成控制工作后,才对工件进行转移,能够保证工件有序及准确的被加工,避免出现工 件堆积等情况。
[0044] (2)本发明采用单片FPGA模块作为主状态机,多片ARM模块作为子状态机的双层 状态机控制结构,并通过星形拓扑结构联结,使得设备生产运行时,当其中一道工序的出错 时,能在不影响其他工序运行的情况下,通过FPGA主状态机,暂停及复位出错工序,增强生 产过程控制的稳定性及可靠性。
[0045] (3)本发明ARM的报错,可以获知出现故障的工序及工序的相应动作,具有报错精 确的优点。
【专利附图】
【附图说明】
[0046] 图1是本发明控制装置的结构组成框图。
[0047] 图2是本发明控制装置中FPGA模块的外围连接框图。
[0048] 图3是本发明控制装置中各ARM模块的外围连接框图。
[0049] 图4是本发明中FPGA模块内串口收发及仲裁逻辑模块示意图。
[0050] 图5是本发明中ARM模块子状态机处于运行态时,FPGA模块与ARM模块的通信时 序不意图。
[0051] 图6是本发明ARM模块子状态机出故障时,FPGA模块与ARM模块的通信时序示意 图。
[0052] 图7是本发明中FPGA模块主状态机跳转示意图。
[0053] 图8是注胶工序示例模块的子状态机跳转示意图。
【具体实施方式】
[0054] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[0055] 实施例
[0056] 如图1所示,本实施例公开了一种基于状态机的多工序设备生产控制装置,包括 上位机PC、与上位机连接的FPGA模块以及用于控制各道工序工作的ARM模块;用于控制各 道工序工作的ARM模块作为子状态机,分别与作为主状态机的FPGA模块连接,与FPGA模块 组成星型拓扑结构,其中ARM模块中包含用于控制对应工序进行工作的逻辑操作,各ARM模 块分别独立控制其中一道工序的工作;FPGA模块与用于转移工件的电机以及用于检测工 件位置的传感器连接。其中本实施例中的FPGA模块为SPARTAN-3E系列的XC3S500,ARM模 块为 ST 公司的 STM32F103ZET8。
[0057] 如图2所示,本实施例的FPGA模块连接有串口收发模块、电机控制模块、故障显示 模块、故障恢复模块、I/O端口模块、交互接口阵列模块、基本的电源电路、复位电路、晶振电 路和配置电路。如图3所示,本实施例的ARM模块连接有电机控制模块、I/O端口模块、交 互接口模块、基本的电源电路、复位电路和晶振电路。FPGA模块和ARM模块所连接的电机控 制模块包括PWM脉冲调速输出单元和编码器反馈输入单元两部分。其中电机控制模块与电 机之间通过高速光耦解耦,通过高速光耦对FPGA模块和电机进行信号的隔离,避免电机侧 信号对FPGA模块的影响。FPGA模块和ARM模块所连接的I/O端口模块通过M0SFET驱动电 路作为信号输出,通过高速光耦接收外界信号输入,高速光耦对FPGA模块和外界输入的信 号进行隔离,避免外界输入信号对FPGA模块的影响。本实施例中所采用的M0SFET管型号 为IRF540,高速光耦型号为6N137。
[0058] FPGA模块的电机控制模块通过高速光耦连接用于转移工件的电机,控制电机的工 作;FPGA模块通过I/O端口模块连接用于检测工件位置的传感器,通过I/O端口模块中的 高速光耦接收传感器发送的信号,以得知工件的位置。另外本实施例FPGA模块和ARM模块 通过其上的I/O端口模块还连接有电磁阀等器件,用于控制相应气动器件的工作,I/O端口 模块通过M0SFET驱动电路输出信号到电磁阀等器件中。ARM模块通过电机控制模块与工序 中的电机连接,控制工序中的相应动作。
[0059] 本实施例FPGA模块的连接故障显示模块用于显示报错的ARM模块子状态机及故 障的工序状态号,在工序的故障消除后,通过故障恢复模块对故障的子状态机进行复位。使 得FPGA模块退出报警状态。本实施例中的故障显示模块为两个四位八段LED数码管,故障 恢复模块为键盘输入装置。当然本实施例的故障显示模块和故障恢复模块也可以直接通过 上位机来实现。
[0060] 本实施例FPGA模块通过串口收发模块与上位机连接,通过串口收发模块接收上 位机串口发送的数据包。其中上位机发送给FPGA模块的数据包帧格式如表1所示,包括两 字节的数据帧头、单字节的功能号、单字节的长度、单字节的工序号、长度字节的数据、单字 节的校验码以及两字节的数据帧尾;
[0061] 表 1
[0062]
【权利要求】
1. 一种基于状态机的多工序设备生产控制装置,其特征在于,包括上位机、与上位机连 接的FPGA模块以及用于控制各道工序工作的ARM模块,其中每个ARM模块控制其中一道工 序的工作;所述用于控制各道工序工作的ARM模块作为子状态机,分别与作为主状态机的 FPGA模块连接,与FPGA模块组成星型拓扑结构;所述FPGA模块连接用于转移工件的电机 以及用于检测工件位置的传感器。
2. 根据权利要求1所述的基于状态机的多工序设备生产控制装置,其特征在于,所述 FPGA模块还连接有故障显示模块和故障恢复模块,通过故障显示模块显示子状态机ARM模 块的故障,通过故障恢复模块对故障的子状态机进行复位。
3. 根据权利要求1所述的基于状态机的多工序设备生产控制装置,其特征在于,所述 FPGA模块连接有多个交互接口阵列模块,通过各交互接口阵列模块与各ARM模块连接,其 中各交互接口阵列模块包括控制接口,状态接口以及数据传输接口;所述控制接口和状态 接口采用高速光耦做并行传输,所述数据传输接口采用RS232协议。
4. 根据权利要求1所述的基于状态机的多工序设备生产控制装置,其特征在于,FPGA 模块和ARM模块上均连接有电机控制模块和I/O端口模块;所述FPGA模块通过其上连接的 电机控制模块与用于转移工件的电机连接,FPGA模块通过其上连接的I/O端口模块与用于 检测工件位置的传感器连接; 所述与FPGA模块和ARM模块连接的I/O端口模块通过MOSFET驱动电路作为信号输 出,通过高速光耦接收外界信号输入;所述与FPGA模块和ARM模块连接的电机控制模块包 括PWM脉冲调速输出单元和编码器反馈输入单元两部分。
5. 根据权利要求1所述的基于状态机的多工序设备生产控制装置,其特征在于,所述 FPGA模块内部中包括串口收发模块以及仲裁逻辑模块,其中仲裁逻辑模块包括帧识别状态 机、查表比较器、FIFO缓存区和UART切换开关阵列;其中上位机串口与FPGA模块的串口收 发模块连接,FPGA模块的串口收发模块连接帧识别状态机,帧识别状态机通过查表比较器 与UART切换开关阵列连接,帧识别状态机还通过FIFO缓存区以及串口收发模块与UART切 换开关阵列连接;FPGA模块通过UART切换开关阵列与各ARM模块连接; 所述FPGA模块中配置有与其连接的各ARM模块的State_Byte寄存器,用于追踪记录 各ARM模块的当前状态。
6. -种基于权利要求1所述的基于状态机的多工序设备生产控制装置的控制方法,其 特征在于,包括以下步骤: 51、 上位机通过串口向FPGA模块发送数据包,FPGA接收并识别数据包; 52、 FPGA模块从上位机串口接收到数据包后,对所接收到数据包进行分析和处理,根据 从上位机接收到的数据包对相应的ARM模块进行对应的参数设置,并且控制所有的ARM模 块进行复位; 53、 FPGA模块监听各ARM模块的状态以及工件在多工序设备生产中的位置,在工序中 工件到位后以及ARM模块复位完成后,启动工件所在工序的ARM模块,通过工件所在工序的 ARM模块控制对应工序的工作; 54、 当某道工序工作完成后,该道工序的ARM模块向FPGA模块发送工作完成信号,通知 FPGA模块该道工序完成工作; 55、 待FPGA模块收到当前所启动的各ARM模块发送的工作完成信号,控制多工序设备 生产中用于转移工件的电机工作,将上一道工序中的工件分别转移到下一道工序中,并且 向第一道工序补充工件;待工件转移完成后,ARM模块自动复位,等待下一次的启动,然后 回到步骤S3,完成各工件的多工序生产加工。
7. 根据权利要求6所述的基于状态机的多工序设备生产控制方法,其特征在于,所述 步骤S1中上位机向FPGA模块发送的数据包的帧格式为:包括两字节的数据帧头、单字节的 功能号、单字节的长度、单字节的工序号、长度字节的数据、单字节的校验码以及两字节的 数据帧尾。
8. 根据权利要求7所述的基于状态机的多工序设备生产控制方法,其特征在于,所述 步骤S2中FPGA模块对从上位机接收到数据包后分析和处理过程如下: S2-1、上位机的串口数据包进入FPGA模块内部的串口收发模块,通过串口收发模块对 接收到的数据包进行数据重组,并且传送给FPGA模块内部的帧识别状态机; S2-2、帧识别状态机判断当前接收到的数据包是否有效;若是,则将当前接收到的数据 包存放在FIFO缓存区; S2-3、根据预定的功能表,通过FPGA模块内部的查表比较器对FIFO缓存区的数据包的 功能号进行查找表比较,根据比较结果判断数据包要实现的参数设置功能; S2-4、FPGA模块根据从上位机接收到数据包帧格式中的工序号找到所要进行参数设置 的ARM模块,然后对该ARM模块进行相应的参数设置。
9. 根据权利要求6所述的基于状态机的多工序设备生产控制方法,其特征在于,还包 括以下步骤: S6-1、当ARM模块对应工序发生故障时,产生一个Error信号,以向FPGA模块进行报 错;当FPGA模块通过其与ARM的接口采集到Error信号时,得知报错的ARM模块子状态机, 进入报警状态; S6-2、FPGA模块采集到Error信号后,从其与报错ARM模块的接口中读取ARM子状态机 的报错状态号,将报错的ARM模块子状态机号和报错状态号通过故障显示模块上显示;并 且暂停报错的ARM模块的运行; S6-3、用户通过故障显示模块上显示的状态机号和报错状态号定位出现故障的工序及 相应动作,并对出现故障的工序进行故障排查,待故障消除后,通过FPGA模块连接的故障 恢复模块向FPGA模块发送信号; S6-4、FPGA模块接收到故障恢复模块发送的信号后,发送复位信号至报错的ARM模块, 对出现报错的ARM模块进行复位; S6-5、报错的ARM模块复位后,发送复位完成信号给FPGA模块,FPGA模块退出报警状 态。
10. 根据权利要求9所述的基于状态机的多工序设备生产控制方法,其特征在于,FPGA 模块监听的各ARM模块的状态包括运行态、完成态、待机态和中断态;FPGA模块和各ARM模 块端口之间通信的信号包括Vaild信号、Over信号、ARM模块运行状态信号、Error信号、 RXD信号以及TXD信号; 当所述步骤S3中FPGA模块启动ARM模块时,FPGA模块向被启动的ARM模块传送VaiId 信号,当ARM模块监听到Valid信号后,进入运行态,控制相应工序的工作; 当所述步骤S4中某道工序工作完成后,该道工序的ARM模块向FPGA模块发送一个 Over信号,ARM模块进入完成态,ARM模块控制相应工序停止工作; 当所述步骤S3中FPGA模块监听到各ARM模块复位完成但相应工序中不存在工件时, ARM模块进入到待机态; 当所述步骤S6中ARM报错时,FPGA采集到Error信号;FPGA模块控制报错ARM模块暂 停运行,ARM模块进入中断状态; FPGA模块中ARM模块的State_Byte寄存器待机态标志位在系统上电回原点后、或在 工件转移完成后且没有检测到ARM模块对应工序中存在工件时置高,在该ARM模块接收到 FPGA模块的Vaild信号后清零;当ARM模块的State_Byte寄存器待机态标志位置高时,该 ARM模块为待机态; FPGA模块中ARM模块的State_Byte寄存器运行态标志位在该ARM模块接收到的FPGA 模块的Vaild信号后被置高,在该ARM模块接收到Over信号后清零;当ARM模块的State_ Byte寄存器运行态标志位置高时,该ARM模块为运行态; FPGA模块中ARM模块的State_Byte寄存器完成态标志位在该ARM模块接收到的Over 信号后被置高,在该ARM模块对应工序的工件被转移后清零;当ARM模块的State_Byte寄 存器完成态标志位置高时,该ARM模块为完成态; FPGA模块中ARM模块的State_Byte寄存器中断态标志位在该ARM模块发送Error信 号到FPGA模块时或者接收到RXD串口数据的挂起指令时置高,当ARM模块的State_Byte 寄存器中断态标志位置高时,该ARM模块为中断态。
【文档编号】G05B19/418GK104142666SQ201410355623
【公开日】2014年11月12日 申请日期:2014年7月24日 优先权日:2014年7月24日
【发明者】郭文权, 罗家祥, 胡跃明, 陈安 申请人:华南理工大学