在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

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

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

            g.JPG




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

            評論


            相關(guān)推薦

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

            關(guān)閉