基于EASY 嵌入式PLC 芯片构建现场总线ETS系统
发布时间:2008/6/3 0:00:00 访问次数:422
针对以上情况,我公司选用科威公司的esay嵌入式plc芯片构建了ets系统的核心控制模块,通过can现场总线与我公司的现场总线tsi系统实现有机融合,相当完美地解决了当前ets系统存在的诸多问题。
一、总体设计
easy 嵌入式plc 芯片有两个uart串口和一个can接口以及32个io引脚。该芯片的can接口已经加载科威公司的can应用层协议,这是一个主从式的协议,通讯速率160k。我公司的tsi系统使用的mvcan-2 can应用层协议是一个多主结构的协议,通讯速率可以是10k、125k、250k和500k。由于协议不同,tsi系统并不能直接使用easy 嵌入式plc 芯片的can接口与其通讯。为解决这个问题,将ets控制模块设计成双cpu结构。使用8位mcu p89v51rd2和独立can控制器sja1000扩展出另一个can通讯口,在该通讯口加载mvcan-2协议,实现与tsi系统的连接。p89v51rd2和easy 嵌入式plc 芯片之间通过两片idt7202交换数据。idt7202是一种双端口的fifo(先入先出)缓冲器,内部有1024×9位fifo ram。
二、硬件实现
以下是主要硬件设计框图:
p89v51rd2通过地址、数据和写信号线连接到其中一片
idt7202的写入端口,并通过地址、数据和读信号线连接到另一片idt7202的读出端口;嵌入式plc 芯片只有通用io引脚,没有地址、数据和读写信号线,只能用通用io来模拟读写操作。具体做法是将嵌入式plc 芯片的p1口当作1个8位数据端口分别与两个idt7202的另一组读取和写入端口连接,p3.0、p3.1、p3.2用作读、写、使能信号,p4.0、p4.1、p4.2用作状态判断信号。用嵌入式plc 芯片的p2口扩展了8个继电器输出,嵌入式plc 芯片的其它接口和特性均按典型应用进行设计。将p89v51rd2的uart串口设计为rs232标准串口,该串口在设置时用于下载tsi系统的配置文件,运行时加载modbus协议用于与上位机或其它设备通信。最后完成的ets控制器具有以下功能:八路继电器输出,1个can接口与tsi系统互联,另一个can接口可用于io扩展和ets控制器间互联,com1串口用于梯形图下载和plc监控,com2用于can组态和plc通讯,com3(由p89v51rd2扩展)用于tsi配置下载和tsi数据监控。
三、软件实现
软件由两部分组成。一部分是运行于p89v51rd2中的软件,另一部分是嵌入到嵌入式plc芯片中的软件。
运行于p89v51rd2中的软件使用c语言编写。软件被设计为两种工作模式:设置模式和工作模式。在设置模式下,用户使用pc通过串口将tsi系统的配置文件传递给p89v51rd2,p89v51rd2将文件存储于内部flash中;在工作模式下,p89v51rd2按照配置文件解析由sja1000接收到的tsi系统数据,并将数据按照一定格式通过idt7202传输给嵌入式plc。同时,由嵌入式plc通过idt7202发来的数据经解析后通过sja1000发送到tsi系统。
嵌入到嵌入式plc芯片中的软件基于科威公司提供的汇编语言框架编写。首先解决使用通用io来模拟idt7202的读写操作,以下是读写idt7202的程序:
fifo_ff equ p4.1
fifo_ef equ p4.0
c1_dir equ p3.3
c1_en equ p3.2
c1_wr equ p3.1
c1_rd equ p3.0
fifo_port equ p1
write_fifo: mov sfrpage,#0fh
jnb fifo_ff,wfifo_l1
clr c1_dir
mov fifo_port,r7
clr c1_en
clr c1_wr
setb c1_wr
setb c1_en
mov r6,#1
ret
wfifo_l1: mov r6,#0
ret
read_fifo: mov sfrpage,#0fh
jnb fifo_ef,rfifo_l1
setb c1_dir
clr c1_en
clr c1_rd
mov fifo_port,#0ffh
mov a,fifo_port
setb c1_rd
setb c1_en
mov r6,a
mov r7,#1
ret
rfifo_l1: mov r7,#0
ret
在嵌入式plc的step函数和scan函数中读取idt7202的数据,每次读取两帧。数据解析后存入对应的d寄存器,这样就可以在梯形图编程中使用这些数据。有一部分数据是可写的(即允许由plc向tsi方向传递)。对这部分数据,在plc的外部ram开辟一块内存作为数据副本,初始化时将d寄存器与副本置为相同值,在运行中于step函数和scan函数中监视d寄存器和副本的值是否相同,若不同则将d寄存器值向p89v51rd2发送。
四、总结
基于easy
针对以上情况,我公司选用科威公司的esay嵌入式plc芯片构建了ets系统的核心控制模块,通过can现场总线与我公司的现场总线tsi系统实现有机融合,相当完美地解决了当前ets系统存在的诸多问题。
一、总体设计
easy 嵌入式plc 芯片有两个uart串口和一个can接口以及32个io引脚。该芯片的can接口已经加载科威公司的can应用层协议,这是一个主从式的协议,通讯速率160k。我公司的tsi系统使用的mvcan-2 can应用层协议是一个多主结构的协议,通讯速率可以是10k、125k、250k和500k。由于协议不同,tsi系统并不能直接使用easy 嵌入式plc 芯片的can接口与其通讯。为解决这个问题,将ets控制模块设计成双cpu结构。使用8位mcu p89v51rd2和独立can控制器sja1000扩展出另一个can通讯口,在该通讯口加载mvcan-2协议,实现与tsi系统的连接。p89v51rd2和easy 嵌入式plc 芯片之间通过两片idt7202交换数据。idt7202是一种双端口的fifo(先入先出)缓冲器,内部有1024×9位fifo ram。
二、硬件实现
以下是主要硬件设计框图:
p89v51rd2通过地址、数据和写信号线连接到其中一片
idt7202的写入端口,并通过地址、数据和读信号线连接到另一片idt7202的读出端口;嵌入式plc 芯片只有通用io引脚,没有地址、数据和读写信号线,只能用通用io来模拟读写操作。具体做法是将嵌入式plc 芯片的p1口当作1个8位数据端口分别与两个idt7202的另一组读取和写入端口连接,p3.0、p3.1、p3.2用作读、写、使能信号,p4.0、p4.1、p4.2用作状态判断信号。用嵌入式plc 芯片的p2口扩展了8个继电器输出,嵌入式plc 芯片的其它接口和特性均按典型应用进行设计。将p89v51rd2的uart串口设计为rs232标准串口,该串口在设置时用于下载tsi系统的配置文件,运行时加载modbus协议用于与上位机或其它设备通信。最后完成的ets控制器具有以下功能:八路继电器输出,1个can接口与tsi系统互联,另一个can接口可用于io扩展和ets控制器间互联,com1串口用于梯形图下载和plc监控,com2用于can组态和plc通讯,com3(由p89v51rd2扩展)用于tsi配置下载和tsi数据监控。
三、软件实现
软件由两部分组成。一部分是运行于p89v51rd2中的软件,另一部分是嵌入到嵌入式plc芯片中的软件。
运行于p89v51rd2中的软件使用c语言编写。软件被设计为两种工作模式:设置模式和工作模式。在设置模式下,用户使用pc通过串口将tsi系统的配置文件传递给p89v51rd2,p89v51rd2将文件存储于内部flash中;在工作模式下,p89v51rd2按照配置文件解析由sja1000接收到的tsi系统数据,并将数据按照一定格式通过idt7202传输给嵌入式plc。同时,由嵌入式plc通过idt7202发来的数据经解析后通过sja1000发送到tsi系统。
嵌入到嵌入式plc芯片中的软件基于科威公司提供的汇编语言框架编写。首先解决使用通用io来模拟idt7202的读写操作,以下是读写idt7202的程序:
fifo_ff equ p4.1
fifo_ef equ p4.0
c1_dir equ p3.3
c1_en equ p3.2
c1_wr equ p3.1
c1_rd equ p3.0
fifo_port equ p1
write_fifo: mov sfrpage,#0fh
jnb fifo_ff,wfifo_l1
clr c1_dir
mov fifo_port,r7
clr c1_en
clr c1_wr
setb c1_wr
setb c1_en
mov r6,#1
ret
wfifo_l1: mov r6,#0
ret
read_fifo: mov sfrpage,#0fh
jnb fifo_ef,rfifo_l1
setb c1_dir
clr c1_en
clr c1_rd
mov fifo_port,#0ffh
mov a,fifo_port
setb c1_rd
setb c1_en
mov r6,a
mov r7,#1
ret
rfifo_l1: mov r7,#0
ret
在嵌入式plc的step函数和scan函数中读取idt7202的数据,每次读取两帧。数据解析后存入对应的d寄存器,这样就可以在梯形图编程中使用这些数据。有一部分数据是可写的(即允许由plc向tsi方向传递)。对这部分数据,在plc的外部ram开辟一块内存作为数据副本,初始化时将d寄存器与副本置为相同值,在运行中于step函数和scan函数中监视d寄存器和副本的值是否相同,若不同则将d寄存器值向p89v51rd2发送。
四、总结
基于easy
上一篇:以太网与现场总线技术