中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于DSP/BIOS的PLC執(zhí)行系統(tǒng)開發(fā)

        基于DSP/BIOS的PLC執(zhí)行系統(tǒng)開發(fā)

        作者: 時(shí)間:2013-05-18 來(lái)源:網(wǎng)絡(luò) 收藏

        2 執(zhí)行系統(tǒng)的具體實(shí)現(xiàn)
        2.1 數(shù)據(jù)結(jié)構(gòu)定義
        1)指令代碼數(shù)據(jù)結(jié)構(gòu)的定義。用戶程序在系統(tǒng)內(nèi)部以一定的二進(jìn)制格式存放,采用如下指令開辟一個(gè)a字節(jié)的內(nèi)存區(qū)存放編譯后的PLC指令代碼,內(nèi)存區(qū)大小a根據(jù)實(shí)際情況設(shè)定。
        long*plc_pt;
        plc_pt=(long*)malloc(a);
        2)PLC執(zhí)行指令結(jié)構(gòu)體的定義。PLC指令代碼主要包含內(nèi)容為指令類型及變量地址,定義如下PLC執(zhí)行指令結(jié)構(gòu)體:
        struct plc_code_type //PLC執(zhí)行指令結(jié)構(gòu)體
        {
        unsigned char code_type;//指令類型
        unsigned short pt addr;//變量地址
        };
        由此,在初始化時(shí)定義一個(gè)pk_code_type類型的指針直接指向PLC指令代碼區(qū).在進(jìn)行PLC指令解析時(shí),可直接移動(dòng)該指針進(jìn)行指令解析并輸出。
        2.2 PLC指令解析
        PLC執(zhí)行系統(tǒng)的一個(gè)關(guān)鍵問(wèn)題在于PLC指令的解析,利用的C語(yǔ)言,建立相應(yīng)的PLC指令的執(zhí)行函數(shù)庫(kù)。PLC用戶程序可看成由多段執(zhí)行塊組成,每個(gè)執(zhí)行塊包括條件指令及執(zhí)行指令。下面分為條件指令解析及執(zhí)行指令解析來(lái)進(jìn)行描述。
        2.2.1 條件指令解析
        首先定義一個(gè)變量來(lái)保存條件指令解析結(jié)果,以便在解析執(zhí)行指令時(shí)根據(jù)此條件指令解析結(jié)果進(jìn)行執(zhí)行指令處理。
        例如常開觸點(diǎn)(LD)可以用如下函數(shù)實(shí)現(xiàn):
        void plcLD(plc_code_typepc)
        //pc表示當(dāng)前指令在用戶程序中的指針位置
        { if(1==pc->pt_addr)//指令獲取的地址為1
        {
        plc_result=0x01;//閉合狀態(tài)置位
        }
        }
        2.2.2 執(zhí)行指令解析
        執(zhí)行指令則根據(jù)當(dāng)前執(zhí)行塊條件指令結(jié)果來(lái)判斷對(duì)元件地址進(jìn)行相應(yīng)處理。例如置位指令(SET)可以用如下函數(shù)實(shí)現(xiàn):
        void plcSET(plc_code_typepc)
        { if(plc_result1)
        //判斷條件指令,閉合,有輸出
        {
        pc->pt_addr|=0xff;//對(duì)應(yīng)地址置位
        }
        }
        這樣,逐個(gè)對(duì)PLC執(zhí)行塊進(jìn)行解析,輸入和輸出單元的刷新同樣利用函數(shù)來(lái)實(shí)現(xiàn),最后通過(guò)輸出口送出控制量,實(shí)現(xiàn)對(duì)用戶PLC程序的執(zhí)行控制。
        2.3 PLC執(zhí)行系統(tǒng)運(yùn)行流程
        首先在配置工具下的Scheduling項(xiàng)目中建立一個(gè)任務(wù)線程,比如為PLC_Deal_Task,并對(duì)該任務(wù)函數(shù)的優(yōu)先級(jí)及其它相關(guān)內(nèi)容進(jìn)行設(shè)置,則可直接在PLC_Deal_Task線程中進(jìn)行PLC指令解析處理,并實(shí)現(xiàn)PLC的循環(huán)掃描功能。
        總體設(shè)計(jì)思想如下:設(shè)定一級(jí)程序的執(zhí)行周期為m個(gè)指令計(jì)數(shù)執(zhí)行一次,m與掃描周期有關(guān)。在進(jìn)入二級(jí)循環(huán)后,首先判斷指令計(jì)數(shù)是否大于m,未到m,則進(jìn)入執(zhí)行二級(jí)程序。如果條件滿足,跳出循環(huán),1周期完成,具體調(diào)度流程如圖2所示。

        本文引用地址:http://www.antipu.com.cn/article/189597.htm

        g.JPG




        關(guān)鍵詞: BIOS DSP PLC 系統(tǒng)開發(fā)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉