3.3 输入输出模块的扩展
可编程控制器输入输出模块主要有数字量和模拟量输入输出。模拟量的输入输出即A/D、D/A是对象过程参数和PLC主机之间的接口。对象过程参数经过传感器转换成标准的电量后,经过A/D转换器进入PLC主机中;PLC主机经过D/A数模转换把数字量转换成模拟量输出。由于S3C44B0X微处理器内部带有了8路10位的A/D转换器,在一些要求不是很高的控制领域,该转换器可以满足要求,因此不需扩展。S3C44B0X内部没有D/A转换器,所以采用的D/A转换器为MAX5741进行扩展,该转换器是4路10位,使用SPI接口进行扩展,其与微处理器的连接原理图如图6:
图6 D/A转换器的扩展
3.4 CAN总线扩展
系统使用CAN现场总线在各个模块之间交换数据、通信,如:用户使用手持编程器或PC机编写梯形图或指令表程序后,通过CAN总线把程序传输到PLC主机中。由于微处理器S3C44B0X本身没集成CAN控制器,需要单独扩展CAN控制器,采用的CAN控制器为MCP2510,收发器为PCA82C250。MCP2510工作电压为3.3V,能够直接与S3C44B0X微处理器I/O口相连。为进一步提高系统抗干扰性,可在CAN控制器和收发器之间加光耦隔离6N137,原理图如图7:
图7 CAN总线的扩展
4 程序设计及执行过程
程序设计一个关键技术是编写梯形图或指令表程序的解释程序。根据指令的逻辑关系,分别给每条指令编写其对应的子程序,当CPU扫描到某条指令的编码时,就调用其子程序,进行逻辑运算,并把结果送到映像寄存器中。
程序执行过程分为三个阶段:输入处理阶段、程序执行阶段、输出处理阶段。如图8所示。系统上电后,完成堆栈、存储器、中断等的初始化;把D数据寄存器值、部分M特殊辅助寄存器值等一些需要掉电保持的数据,从EEPROM拷贝到SDRAM指定的地址中;把用户编写的梯形图或指令表程序从Nor Flash拷贝到SDRAM中以便提高系统的运行速度。最后系统才真正开始扫描用户编写的梯形图或指令表程序。
图8 程序执行过程
在输入处理阶段,CPU读取所有输入端子的状态,并把这些状态内容保存在输入映像寄存器中;在程序执行阶段,CPU根据输入状态的信息,从梯形图或指令表程序的第一步开始执行,当CPU扫描到有关智能控制模块时,把智能控制模块的一些设置值、参数送到FPGA中, FPGA在主机扫描程序的同时,并行处理智能控制算法,并不断的把运算的结果送到控制参数存储器中;在输出处理阶段,把输出映像寄存器中的内容送到输出锁存寄存器中,使输出端口电平发生变化,执行机构动作驱动要控制的对象,最后把指针指向程序的第一步,使程序周而复始的工作,直到收到停止工作信号为止。
5 结论
本文创新点:基于CAN现场总线、嵌入式微处理器S3C44B0X+FPGA设计的可编程控制器,采用了32位集成度高的嵌入式微处理器S3C44B0X为核心,简化了电路的设计,提高了系统的可靠性及运行速度;通过FPGA配置I/O口,解决了众多芯片I/O口不足的问题,满足了工业控制领域的需求。同时在FPGA中实现的智能控制算法作为功能模块嵌入PLC梯形图程序中,主机执行程序的同时,FPGA也在并行完成智能控制算法的运算,即不影响系统执行的速度,又解决了传统小型PLC不能嵌入智能算法的问题。
参考文献
[1] 马云峰 樊俊秀, PLC 系统设计分析, 自动化技术与应用,2006年第25卷第2期;
[2] 邬依林,刘林冬,黄瑛.嵌入式数控系统众多软PLC的应用与实现[J].微计算机信息,2006年第22卷第7-2期;
[3] 黄伟 罗新民, 基于FPGA 的高速数据采集系统接口设计,单片机与嵌入式系统应用,2006 年第4期
[4] Shanta Sondur; Dipali Sawant, A New Generation Of PLC - An FPGA Based PLC, SICE Annual Conference 2005, Publication Date:2005, On page(s):355-358