位置:51电子网 » 技术资料 » 接口电路

基于EASY 嵌入式PLC 芯片构建现场总线ETS系统

发布时间:2008/6/3 0:00:00 访问次数:422

tsi系统(汽轮机状态监视和保护系统)和ets系统(汽轮机危机跳闸系统)是火力发电厂保证汽轮机和发电机正常运转的重要设备,在火力发电企业运用十分普遍。在当前的大部分应用中,这两套系统是互相独立的,一般由专业的tsi设备供应商提供tsi系统,而ets系统则用通用的plc来构建。但事实上两套系统之间存在着很多联系,tsi系统的输出往往是ets系统的输入。如果能使两套系统有机融合,不仅可以节省成本,更可以使系统结构简化,从而提高可靠性。

针对以上情况,我公司选用科威公司的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

tsi系统(汽轮机状态监视和保护系统)和ets系统(汽轮机危机跳闸系统)是火力发电厂保证汽轮机和发电机正常运转的重要设备,在火力发电企业运用十分普遍。在当前的大部分应用中,这两套系统是互相独立的,一般由专业的tsi设备供应商提供tsi系统,而ets系统则用通用的plc来构建。但事实上两套系统之间存在着很多联系,tsi系统的输出往往是ets系统的输入。如果能使两套系统有机融合,不仅可以节省成本,更可以使系统结构简化,从而提高可靠性。

针对以上情况,我公司选用科威公司的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

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!