面向应用层嵌入的PLC模块设计
2018-07-04广东工业大学自动化学院吴豪乐许锦标
广东工业大学自动化学院 吴豪乐 许锦标
1 引言
传统的PLC采用梯形图和语句表来使得编程简便,具有系统软件开发周期短以及现场调试程序等优点。传统PLC还存在不能兼容支持I2C、SPI这一类的通讯接口和成本比较高的不足。
针对以上传统PLC的不足,本文以STM32系列芯片构建PLC模块硬件系统电路和对软件模块设计来设计出嵌入式PLC模块。采用了模块化设计的PLC具有体积小、成本低以及能够实现访问I2C设备的功能的优点,同时还是采用梯形图的传统开发方式,为工程师开发项目提供了一个新的选择。
2 面向应用层的软PLC模块硬件设计
通过分析传统PLC的工作原理和硬件功能,来设计PLC模块的硬件系统,其中硬件系统主要组成包括STM32 最小系统、掉电检测电路、通讯电路、输入输出电路以及增加新的I2C通讯接口电路,如图2.1所示。
图2.1 嵌入式PLC模块硬件系统结构
3 面向应用层的软PLC模块软件设计
本节将对嵌入式PLC模块的软件部分按实现的功能划分来进行模块化设计,如PLC程序的执行、I2C总线通讯以及指令解释执行,限于篇幅本小节主要讲述PLC系统主函数流程、系统中断处理模块和指令解释模块。
3.1 系统主函数流程
系统的主函数主要完成的任务是对程序进行了一个模块划分,执行的过程是一个有序循环扫描的过程,以PLC指令解析函数解析并跳转到处理函数来处理接收到的数据。如图3.1所示。
图3.1 系统主函数流程图
3.2 中断处理模块
系统中断可以分为:串口接收中断、定时器中断、I2C通讯处理中断和外部掉电检测中断,考虑到后期中断处理随着数据量的增多,如果定时器中断优先级高于串口中断,串口接收中断会出现掉包现象,所以将串口处理中断设置为高于定时器中断,具体中断优先级如图3.2和图3.3所示。
图3.2 前期系统中断优先级
图3.3 后期调试系统中断优先级
3.3 指令解释模块
根据三菱PLC指令占用的字节数特点,可以将其分为单字指令、双字指令和多字指令。
3.3.1 单字节指令
单字指令用最高四位代表指令,其它位来表示软元件位置信息。例如在PLC程序中:“LD X0” ;其指令码为2400H,在C语言中400H表示X0的地址信息,转换成存放X0数组的索引值,之后再读出这个值并将其存放在系统的全局变量中。
3.3.2 双字指令
双字指令虽然有与单字指令相同的部分,但是由于地址上访问不到,所以需要增加指令字节长度来访问地址,例如:“OUT S0”。指令码为 0005H 8000H;其中,0005 代表OUT 指令,8000H+n 代表 Sn 的地址。
3.3.3 多字指令
多字指令的作用是帮助对一些16位的软元件完成数据的传输,例如:“OUT T0 K10”。
指令码为0600H 800AH 8000H;其中,600H为 T0 在三菱FX2N 内部的地址,指令含义为当 T0 计数 1000Ms 后, T0 输出线圈闭合。
4 结束语
在分析传统PLC工作原理的基础上,本文通过以STM32F103ZET6的芯片作为中央处理器设计出一款嵌入式软PLC模块。其中该模块本文是将其进行硬件和软件模块化设计的,针对传统PLC的不足,该模块增加了支持I2C从设备的功能;同时该模块还具有没有改变原有梯形图开发模式和该嵌入式软PLC模块成本较传统PLC成本低的优点,为未来某些控制领域提供了新的控制器的选择。
[1]高兴国.8098芯片PLC级语言编程研究[D].天津工业大学,2000.
[2]李万军.软 PLC体系结构分析及工程应用[D].西安电子科技大学,2007.
[3]孙和平.单片微机原理与接口技术[M].冶金工业出版社,2003.