<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線(xiàn)及其在艾默生PLC上的應(yīng)用

          CAN總線(xiàn)及其在艾默生PLC上的應(yīng)用

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

          newmaker.com

          3)數(shù)據(jù)接收:使用CANRCV指令(參數(shù)含義如下)或使用CAN接收中斷功能。我推薦對(duì)初使用者采用中斷更方便,具體用法參考下面的例子程序。

          newmaker.com

          筆者根據(jù)ECCT集成的功能,在紡織機(jī)械上的得到了成功的應(yīng)用,現(xiàn)介紹如下:其CAN系統(tǒng)總體結(jié)構(gòu)圖如下:

          newmaker.com

          此系統(tǒng)的具體工藝不做介紹,這里只介紹CAN通信部分的應(yīng)用。

          程序使用說(shuō)明如下:

          1.首先根據(jù)要求在“系統(tǒng)塊”里對(duì)CAN通信口進(jìn)行設(shè)置。
          2.?dāng)?shù)據(jù)發(fā)送部分:對(duì)ID為5的地址發(fā)送4個(gè)字?jǐn)?shù)據(jù)“16#1122,16#3344,16#6789,16#1234”需要編寫(xiě)的程序?yàn)槿缦拢?

          newmaker.com

          其中要注意的是:1)CANXMT為上升沿執(zhí)行指令,M1000為指令執(zhí)行條件,當(dāng)其出現(xiàn)OFF—>ON的變化時(shí),執(zhí)行CANXMT指令;2)使用CANXMT指令前先把該賦值的地址寫(xiě)好;3) 發(fā)送數(shù)據(jù)只取D元件的低8位; 4)網(wǎng)絡(luò)上沒(méi)有CANID、數(shù)據(jù)完全相同的CAN幀同時(shí)出現(xiàn);5)ID保留0。6)CAN程序的校驗(yàn)部分全部由硬件自動(dòng)完成,用戶(hù)程序不需要參與。

          3.?dāng)?shù)據(jù)接收部分:此部分以使用中斷方式接收數(shù)據(jù)為例,分2部分步驟:

          1)先在主程序中設(shè)置CAN中斷使能.

          newmaker.com

          2)設(shè)置中斷程序?qū)傩?把其中斷事件選為48(即CAN接收中斷),然后編寫(xiě)程序把接收到的數(shù)據(jù)傳遞到需要的地址.注意ID地址為雙字結(jié)構(gòu),SD282-290依次為數(shù)據(jù)的高低字節(jié),把他們傳遞到相應(yīng)的數(shù)據(jù)寄存器然后合并就可以得到完整的數(shù)據(jù)了。

          newmaker.com

          總結(jié):由于CAN協(xié)議格式比較簡(jiǎn)單,并且相當(dāng)部分工作由CAN控制芯片硬件完成,所以編寫(xiě)程序比較簡(jiǎn)單,實(shí)現(xiàn)起來(lái)很容易,此紡織系統(tǒng)采用CAN通信方式后,速度大大提高并且系統(tǒng)更加穩(wěn)定,受到用戶(hù)的肯定。

          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: CAN總線(xiàn) PLC 控制器

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();