新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式PLC芯片構建現場總線ETS

        嵌入式PLC芯片構建現場總線ETS

        作者: 時間:2012-12-11 來源:網絡 收藏
        TSI系統(汽輪機狀態監視和保護系統)和系統(汽輪機危機跳閘系統)是火力發電廠保證汽輪機和發電機正常運轉的重要設備,在火力發電企業運用十分普遍。在當前的大部分應用中,這兩套系統是互相獨立的,一般由專業的TSI設備供應商提供TSI系統,而系統則用通用的來構建。但事實上兩套系統之間存在著很多聯系,TSI系統的輸出往往是系統的輸入。如果能使兩套系統有機融合,不僅可以節省成本,更可以使系統結構簡化,從而提高可靠性。

        針對以上情況,我公司選用科威公司的ESAY芯片構建了ETS系統的核心控制模塊,通過CAN與我公司的TSI系統實現有機融合,相當完美地解決了當前ETS系統存在的諸多問題。

        一、總體設計

        EASY 芯片有兩個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 嵌入式PLC 芯片構建的ETS控制器目前已經在工業現場得到實際運用,總的情況良好。應該說EASY 嵌入式PLC 芯片是一款成功的產品。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 抚宁县| 时尚| 诸城市| 罗城| 万全县| 澄城县| 理塘县| 页游| 鄂伦春自治旗| 永修县| 武穴市| 天峻县| 东辽县| 榆树市| 宜兴市| 嘉定区| 逊克县| 顺平县| 汽车| 平谷区| 韩城市| 尉氏县| 弋阳县| 郧西县| 凤阳县| 榆树市| 平武县| 屏东县| 长兴县| 福海县| 龙井市| 儋州市| 金塔县| 松阳县| 光山县| 定安县| 梧州市| 云浮市| 黄平县| 泾源县| 当雄县|