您当前的位置:五五电子网电子知识plc技术PLC入门基于DSP/BIOS的PLC执行系统开发 正文
基于DSP/BIOS的PLC执行系统开发

基于DSP/BIOS的PLC执行系统开发

点击数:7775 次   录入时间:03-04 12:02:40   整理:http://www.55dianzi.com   PLC入门
  1)系统初始化:在循环执行PLC程序前,首先要进行执行系统的初始化,包括参数的输入及变量初值的设置;2)输入的采样:每次执行PLC程序时,要读取外部输入状态至缓冲区中,以备后面程序查询;3)执行用户PLC程序:执行用户程序,就是CPUPLC程序的首地址开始按顺序逐个执行编译后的PLC指令,过程结果暂存在相应的寄存器内;4)输出的刷新:执行完用户程序后,需要把处理后需要输出的结果进行外部输出。由于PLC控制的对象大都是变化缓慢的信号,而PLC每次扫描输入和逻辑运算的时间很短,本PLC执行系统设定为每执行一个循环,就进行一遍输出的刷新。

 13DSPBIOS的线程调度

 

  文中的PLC执行系统的开发均在TI公司提供的集成开发环境CCS(CodeComposerStudio)中进行,CCS不仅集成了常规的开发工具,如源程序编辑器、代码生成工具及调试环境,还提供DSPBIOS开发工具。DSPBIOS是一个精简的实时操作系统内核,具有实时操作系统功能。它提供抢占式多线程,支持多种不同优先级,每种线程都有不同的执行和抢占特性,分别是硬件中断(HWI)包括时钟函数(CLK)、软件中断(SWI)包括周期函数(PRD)、任务线程(TSK)、后台线程(IDL)。线程类型的选取原则:HW1只用来处理对时间要求苛刻的关键任务;SWI用来处理相对独立的函数,如果算法要求比较复杂则使用TSKTSK提供了很多任务通信和同步的手段,并且拥有自己独立的堆栈,因此比SWI更灵活。IDL用于执行与时间无关的非关键任务。

 

  在DSPBIOS线程调度中,硬件中断与软件中断的高优先级线程可以暂停运行中的低优先级任务,而高优先级的任务线程必须用特定的API才能抢占当前运行的低优先级任务线程,且只有任务线程才能暂停状态。基于PLC执行是一个循环执行过程,且与其它运动线程有复杂的通讯交互,本执行系统将其建立为一任务线程,由DSPBIOS实时操作系统进行调度。2PLC执行系统的具体实现

 

  21数据结构定义

 

  1)PLC指令代码数据结构的定义。PLC用户程序在系统内部以一定的二进制格式存放,采用如下指令开辟一个a字节的内存区存放编译后的PLC指令代码,内存区大小a根据实际情况设定。

 

  long*plc_pt

 

  plc_pt=(long*)malloc(a)

 

  2)PLC执行指令结构体的定义。PLC指令代码主要包含内容为指令类型及变量地址,定义如下PLC执行指令结构体:

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:开发  PLC入门plc技术 - PLC入门