您当前的位置:五五电子网电子知识plc技术plc应用其它PLC应用基于LPC2294处理器的嵌入式PLC设计 正文
基于LPC2294处理器的嵌入式PLC设计

基于LPC2294处理器的嵌入式PLC设计

点击数:7477 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   其它PLC应用

这是一个由NE555定时器组成的单稳态电路,其中VCC5.0D端接图3中光电耦合器的集电极。其工作原理为:系统上电初始,2、6管脚电平不能突变,保持为低电平。分析NE555的内部电路可知,此时输出端3管脚输出高电平,电路开始对R、C电路进行充电,随着时间的推移,管脚2、6的电平不断升高,当升至23VCC时,输出端3管脚将翻转至低电平,使三极管导通,VCC5.0D输出5V.这样,系统上电后经过一段时间,I/O口的电平稳定下来之后,光电耦合器才得电开始工作。暂稳态的持续时间tW取决于外接电阻R和电容C的大小。tW等于电容电压在充电过程中从0上升到23VCC所需要的时间,

1.2.2模拟量输入电路设计

  先通过电阻R66,将现场传感器输出的电流信号转换为0~5V电压信号进行采集。考虑到抗干扰及对微处理器电路的保护,在转换电路的输出端加了线性光耦HCNR201.

1.2.3串行通讯接口电路设计

  为了能与其它工业控制产品兼容,我们设计时采用了RS-485接口标准。为了将TTL电平转换成RS485电平,选用了SP485E收发器。SP485E芯片的数据传输速率可高达10Mbps,其最大的特点是在为发送器输出和接收器输入管脚提供了ESD保护电路。

2嵌入式PLC的软件系统设计

  嵌入式PLC的软件分为运行系统软件和开发系统软件两部分。运行系统负责对整个系统的管理和对用户程序的编译执行,并保存所有的数据,完成与外界通讯。开发系统面对用户,完成对PLC程序的编辑和转换。

  2.1PLC运行系统软件

  该系统负责为应用程序分配内存,把该应用程序加载到分配好的内存里,然后开始执行该程序的指令。如果该程序要求位于底层的操作系统提供服务,该运行系统还必须负责处理有关的服务请求。该运行系统是基于嵌入式操作系统μC/OS-II来开发的,选用嵌入式操作系统提高了软件系统的抗干扰性,系统的可靠性及应用软件的开发效率,缩短了开发周期。μC/OS-II的移植的主要工作是修改与ARM处理器相关部分的代码,它们集中在3个文件中。

  ①OS_CPU.H文件该文件包含了用#define定义的与处理器相关的常量、宏和类型定义。文件中这些数据类型的定义如下:

  typedefunsignedcharBOOLEAN;

  typedefunsignedcharINT8U;

  typedefsignedcharINT8S;

  typedefunsignedshortINT16U;

  typedefsignedshortINT16S;

  typedefunsignedintINT32U;

  typedefsignedintINT32S;

  typedeffloatFP32;

  typedefdoubleFP64;

  typedefunsignedintOS_STK;

  与ARM7体系结构相关的一些定义如下:

  #defineOS_CRITICAL_METHOD2

  __swi(0×00)voidOS_TASK_SW(void);

  __swi(0×01)void_OSStartHighRdy(void);

  __swi(0×02)voidOS_ENTER_CRITICAL(void);

  __swi(0×03)voidOS_EXIT_CRITICAL(void);_

  _swi(0×40)void*GetOSFunctionAddr(intIndex);

  __swi(0×41)void*GetUsrFunctionAddr(intIndex);

  __swi(0×42)voidOSISRBegin(void);

  __swi(0×43)intOSISRNeedSwap(void);

  __swi(0×80)voidChangeToSYSMode(void);

  __swi(0×81)voidChangeToUSRMode(void);

  __swi(0×82)voidTaskIsARM(INT8Uprio);

  __swi(0×83)voidTaskIsTHUMB(INT8Uprio);

  /*上述函数需在移植文件OS_CPU.H中将其声明。

  */#defineOS_STK_GROWTH1

  此代码段中的OS_ENTER_CRITICAL()函数和OS_EXIT_CRITICAL()函数实现打开和关闭处理器的功能。

②OS_CPU_C.C文件该文件中的任务栈结构初始化函数OSTaskStkInit(),必须根据移植时统一定义的任务堆栈结构进行初始化。另外还有9个系统规定的钩子函数必须声明,但可以不包含任何代码,这些钩子函数在本移植中全为空函数。

  ③OS_CPU_A.S文件的移植共包括4个函数:多任务启动函数中调用的OSStartHighRdy()、任务切换函数OSCtxSw()、中断任务切换函数OSIntCtxSw()、时钟节拍服务函数OSTickISR()。

  至此整个μC/OS-II内核移植完成。以后的用户程序都是在这个基础上进行的扩充。

  2.2PLC开发系统软件

  该系统的主要任务是让用户编写PLC程序,所以还需要设计与该系统相对应的编程平台。编程平台的设计主要包括编程界面的设计、编辑器的设计、转换模块的设计、编译器的设计和通信模块的设计等。

用户在编程平台里编写PLC程序。这里借用FX系列PLC的编程软件SWOPC-FXGP/WIN-C作为编程平台,编程语言可以使用梯形图和指令表。然后通过转换程序把编译后的目标文件转化成C语言。转换程序其实就是一个解释系统,通过逐条翻译编程软件的指令表,生成和处理器指令系统无关的用户指令。使用这样的方式作为上位机编程平台,节省了工作量。

  3系统测试

  将所设计的PLC软件系统植入基于LPC2294的嵌入式开发平台,与PLC输入输出硬件接口板连接,构成14输入10输出的PLC系统。在上层开发系统中编写相应的PLC梯形图,编译后加载到嵌入式PLC的运行系统中。

 按下开关0,相应的LED0被点亮,延时4秒后LED1被点亮。按下开关1,相应的LED2被点亮,同时LED0被熄灭。

  由以上的测试效果可以看出原型机的测试结果与理论分析结果相同,所设计的PLC控制系统硬件、软件及μCOS-II操作系统的移植达到了期望的控制效果,达到了设计要求。

  4结束语

  本文针对目前普通PLC存在的一些不足,提出了一种基于LPC2294的嵌入式PLC设计方案。该嵌入式PLC的硬件、软件、通信等各方面的功能设计灵活,易于剪裁,更贴近各种档次的机电设备的要求。该PLC完全基于嵌入式系统的技术基础,拿来就可以用,且SOC芯片、嵌入式操作系统、符合IEC61131-3编程语言标准编程环境等在市场上很容易找到,因此该嵌入式PLC在我国市场的使用和推广前景十分可观。

上一页  [1] [2] 


本文关键字:处理器  嵌入式  其它PLC应用plc技术 - plc应用 - 其它PLC应用